/*=============================================================================================	
    Company    : PT Web Architect Technology - webarq.com
    Document   : Stylesheet
    Author     : Ghalia Adzana
==============================================================================================*/
/*=============================================================================================	
    Company    : PT Web Architect Technology - webarq.com
    Document   : Stylesheet
    Author     : FrontEnd Team  
==============================================================================================*/
/* import bourbon - http://bourbon.io/docs */
/* color global
----------------------------------------------------------------------------------------------*/
body {
  color: #333;
  font-size: 12px;
  font-family: "Open Sans", sans-serif;
  position: relative;
  overflow-x: hidden;
}

figure {
  margin: 0;
  padding: 0;
}

figure img {
  vertical-align: middle;
}

img {
  border: 0;
  max-width: 100%;
  height: auto;
}

p {
  margin: 1px 0 15px;
  line-height: 20px;
}

input, textarea, select {
  font-size: 12px;
  border: none;
  border: 1px solid #D8D8D8;
  padding: 10px;
  margin: 0;
  color: #666;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
}

input[type=checkbox], input[type=radio] {
  border-top-style: none;
  border-right-style: none;
  border-bottom-style: none;
  border-left-style: none;
}

input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  opacity: 0;
}

input[type=number]::-webkit-outer-spin-button,
input[type=number]::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

h1 {
  font-size: 32px;
}

h2 {
  font-size: 28px;
}

h3 {
  font-size: 24px;
}

h4 {
  font-size: 20px;
}

h5 {
  font-size: 16px;
}

h6 {
  font-size: 14px;
}

/* structure 
----------------------------------------------------------------------------------------------*/
section {
  position: relative;
  overflow: hidden;
}

.wrapper15 {
  width: 1500px;
  margin: 0 auto;
}

.wrapper11 {
  width: 1168px;
  margin: 0 auto;
  position: relative;
}

.wrapper11:after {
  display: block;
  clear: both;
  content: '';
}

.wrapper79 {
  width: 790px;
  margin: 65px auto 0;
}

.wrapper13 {
  width: 1370px;
  margin: 0 auto;
}

.btn-learn {
  padding: 0 20px;
  color: #fff;
  background: #f08519;
  font-size: 16px;
  font-family: "Open Sans", sans-serif;
  font-weight: 700;
  border: none;
  cursor: pointer;
  min-width: 150px;
  text-align: center;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  line-height: 50px;
  transition: all ease-out 0.4s;
  -webkit-transition: all ease-out 0.4s;
  -moz-transition: all ease-out 0.4s;
  -ms-transition: all ease-out 0.4s;
  -o-transition: all ease-out 0.4s;
  /*&:hover{
        color:#f58220; background: #0060af; @include transition(0.2 ease-out all);
    }*/
}

.btn-learn.load {
  margin: auto;
  text-align: center;
  display: inline-block;
  width: 150px;
}

.btn-learn:hover {
  background: #eca054;
  color: #fff;
}

.btn-center {
  text-align: center;
}

/* header
----------------------------------------------------------------------------------------------*/
header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: 90px;
  z-index: 999;
  transition: 0.2s ease-out background;
  -webkit-transition: 0.2s ease-out background;
  -moz-transition: 0.2s ease-out background;
  -ms-transition: 0.2s ease-out background;
  -o-transition: 0.2s ease-out background;
}

header:after {
  content: '';
  display: block;
  clear: both;
}

header .logo {
  float: left;
}

header .right-menu {
  float: right;
  width: 150px;
  margin-top: 30px;
  margin-right: 60px;
  position: relative;
}

header .right-menu:after {
  content: '';
  display: block;
  clear: both;
}

header .right-menu:before {
  content: '';
  width: 1px;
  height: 30px;
  background: #fff;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  margin: 0 auto;
}

header .right-menu .search {
  float: left;
  position: relative;
  cursor: pointer;
}

header .right-menu .search span {
  width: 30px;
  height: 30px;
  background: url("../images/material/ico-search.png") no-repeat center;
  position: absolute;
  left: 0;
  top: 0;
}

header .right-menu .form-search {
  position: absolute;
  right: 0;
  top: 0;
  overflow: hidden;
  width: 0;
}

header .right-menu .form-search input[type='text'] {
  position: relative;
  width: 400px;
  border: none;
  background: transparent;
  border-bottom: 2px solid #f0861b;
  font-size: 16px;
  color: #999999;
}

header .right-menu .form-search input[type='submit'] {
  position: absolute;
  right: 0;
  top: 0;
  border: none;
  background: url("../images/material/ico-search.png") no-repeat center;
  width: 30px;
  height: 30px;
  cursor: pointer;
}

header .right-menu .togglemenu {
  float: right;
  width: 40px;
  height: 40px;
  position: relative;
  cursor: pointer;
  z-index: 100;
}

header .right-menu .togglemenu span {
  width: 100%;
  height: 3px;
  background: #fff;
  display: block;
  position: absolute;
  transition: 0.2s ease-out all;
  -webkit-transition: 0.2s ease-out all;
  -moz-transition: 0.2s ease-out all;
  -ms-transition: 0.2s ease-out all;
  -o-transition: 0.2s ease-out all;
}

header .right-menu .togglemenu span:nth-child(1) {
  top: 0;
}

header .right-menu .togglemenu span:nth-child(2) {
  top: 12px;
}

header .right-menu .togglemenu span:nth-child(3) {
  top: 24px;
}

header .right-menu .togglemenu.close span {
  background: #fff;
}

header .right-menu .togglemenu.close span:nth-child(1) {
  top: 12px;
  transform: rotate(45deg);
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  -o-transform: rotate(45deg);
}

header .right-menu .togglemenu.close span:nth-child(2) {
  opacity: 0;
}

header .right-menu .togglemenu.close span:nth-child(3) {
  top: 12px;
  transform: rotate(-45deg);
  -webkit-transform: rotate(-45deg);
  -moz-transform: rotate(-45deg);
  -ms-transform: rotate(-45deg);
  -o-transform: rotate(-45deg);
}

header .right-header {
  width: 500px;
  height: 100vh;
  background: #033058;
  position: fixed;
  top: 0;
  display: none;
  right: 0;
  padding: 118px 60px 80px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  z-index: 99;
}

header .right-header nav {
  text-align: right;
}

header .right-header nav ul a {
  color: #fff;
}

header .right-header nav ul a:hover {
  color: #f08214;
}

header .right-header nav ul > li {
  font-size: 24px;
  font-weight: 700;
  margin-bottom: 15px;
}

header .right-header nav ul > li.child > a {
  position: relative;
}

header .right-header nav ul > li.child > a:before {
  content: '';
  background: url(../images/material/arr-down-wht.png) no-repeat left;
  position: absolute;
  width: 16px;
  height: 10px;
  left: -30px;
  top: 0;
  bottom: 0;
  margin: auto 0;
}

header .right-header nav ul > li.child > a:hover {
  color: #f08214;
}

header .right-header nav ul > li.child > a:hover:before {
  background: url(../images/material/arr-down-wht.png) no-repeat right;
}

header .right-header nav ul > li > ul {
  display: none;
  margin-bottom: 35px;
}

header .right-header nav ul > li > ul > li {
  font-size: 19px;
  font-weight: 400;
  margin-bottom: 0;
  margin-top: 15px;
  color: #bed2e3;
}

header .right-header nav ul > li > ul > li.active a {
  color: #f08214;
}

header .right-header .box {
  position: absolute;
  bottom: 85px;
  left: 0;
  right: 0;
  margin: 0 60px;
}

header .right-header .box:after {
  content: '';
  clear: both;
  display: block;
}

header .right-header .box .box-lang {
  float: left;
}

header .right-header .box .box-lang span {
  position: relative;
}

header .right-header .box .box-lang span:first-child {
  padding-right: 10px;
}

header .right-header .box .box-lang span:first-child:after {
  content: '/';
  position: absolute;
  right: 0;
  top: 0;
  color: #8badcb;
  font-size: 16px;
}

header .right-header .box .box-lang span:hover a, header .right-header .box .box-lang span .active a {
  color: #f0861b;
  font-weight: 600;
}

header .right-header .box .box-lang a {
  font-size: 16px;
  color: #8badcb;
}

header .right-header .box .box-phone {
  float: right;
}

header .right-header .box .box-phone a {
  color: #becfde;
  font-size: 16px;
  display: inline-block;
  position: relative;
  padding-left: 35px;
}

header .right-header .box .box-phone a:before {
  content: '';
  background: url("../images/material/ic-phone.png") no-repeat center;
  position: absolute;
  left: 0;
  top: -5px;
  width: 26px;
  height: 26px;
}

header .overlay {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: rgba(0, 0, 0, 0.8);
  display: none;
  z-index: 98;
}

header.float, header.headwhite {
  background: #fff;
  box-shadow: 0px 2px 15px -5px rgba(0, 0, 0, 0.75);
  -webkit-box-shadow: 0px 2px 15px -5px rgba(0, 0, 0, 0.75);
  -moz-box-shadow: 0px 2px 15px -5px rgba(0, 0, 0, 0.75);
  -ms-box-shadow: 0px 2px 15px -5px rgba(0, 0, 0, 0.75);
  -o-box-shadow: 0px 2px 15px -5px rgba(0, 0, 0, 0.75);
}

header.float .search span, header.headwhite .search span {
  background-image: url("../images/material/ico-searchorange.png");
}

header.float .togglemenu span, header.headwhite .togglemenu span {
  background: #f08519;
}

header.float .right-menu:before, header.headwhite .right-menu:before {
  background: #f08519;
}

/* end of header */
/* middle
----------------------------------------------------------------------------------------------*/
.home .tittle {
  text-align: center;
}

.home .tittle h2 {
  font-size: 42px;
  color: #005aa8;
  font-weight: 700;
  text-transform: uppercase;
  font-family: "Oswald", sans-serif;
  letter-spacing: 8px;
}

.home .tittle span {
  color: #f08214;
  margin-left: 10px;
}

.home.about-us {
  padding-top: 65px;
}

.home.about-us .box-about {
  width: 386px;
  height: 386px;
  position: relative;
  margin: 100px auto;
}

.home.about-us .box-about .bg-images {
  width: 386px;
  height: 386px;
  border-radius: 100%;
  -webkit-border-radius: 100%;
  -moz-border-radius: 100%;
  -ms-border-radius: 100%;
  -o-border-radius: 100%;
  overflow: hidden;
  position: relative;
}

.home.about-us .content-circle {
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  left: 0;
  margin: auto;
}

.home.about-us .content-circle .list-circ {
  width: 515px;
  height: 70px;
  position: absolute;
}

.home.about-us .content-circle .list-circ .ico {
  position: relative;
  background: #e9e9e9;
  width: 103px;
  height: 103px;
  border-radius: 100%;
  -webkit-border-radius: 100%;
  -moz-border-radius: 100%;
  -ms-border-radius: 100%;
  -o-border-radius: 100%;
  float: right;
}

.home.about-us .content-circle .list-circ .ico img {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  margin: auto;
}

.home.about-us .content-circle .list-circ .txt {
  width: 380px;
}

.home.about-us .content-circle .list-circ .txt h6 {
  font-size: 16px;
  font-family: "Open Sans", sans-serif;
  font-weight: 700;
  color: #043b68;
  margin-bottom: 10px;
  text-transform: uppercase;
}

.home.about-us .content-circle .list-circ .txt p {
  font-size: 14px;
  font-family: "Open Sans", sans-serif;
  color: #555;
}

.home.about-us .content-circle .list-circ:nth-of-type(1) {
  position: absolute;
  top: -20px;
  text-align: right;
}

.home.about-us .content-circle .list-circ:nth-of-type(2) {
  position: absolute;
  top: -20px;
  text-align: left;
}

.home.about-us .content-circle .list-circ:nth-of-type(1n) {
  left: -100%;
  right: auto;
}

.home.about-us .content-circle .list-circ:nth-of-type(2n) {
  right: -100%;
  left: auto;
}

.home.about-us .content-circle .list-circ:nth-of-type(3) {
  top: 50%;
  transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  -moz-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  -o-transform: translateY(-50%);
  left: -120%;
  right: auto;
  text-align: right;
}

.home.about-us .content-circle .list-circ:nth-of-type(4) {
  top: 50%;
  transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  -moz-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  -o-transform: translateY(-50%);
  right: -120%;
}

.home.about-us .content-circle .list-circ:nth-of-type(5) {
  top: auto;
  bottom: -10px;
  text-align: right;
}

.home.about-us .content-circle .list-circ:nth-of-type(6) {
  top: auto;
  bottom: -10px;
}

.home.about-us .content-circle .list-circ:nth-of-type(2n) .ico {
  float: left;
}

.home.about-us .content-circle .list-circ:nth-of-type(2n) .txt {
  float: right;
}

.home.about-us .content-circle .list-circ:after {
  clear: both;
  display: block;
  content: '';
}

.home.about-us hr {
  width: 100%;
  height: 1px;
  background: #ccc;
  border: none;
}

.home.ourproject {
  padding-top: 65px;
}

.home.ourproject .slider-project {
  margin-top: 80px;
}

.home.ourproject .slider-project .list-slider .image {
  position: relative;
  overflow: hidden;
}

.home.ourproject .slider-project .list-slider .image img {
  transition: 0.4s all ease-out;
  -webkit-transition: 0.4s all ease-out;
  -moz-transition: 0.4s all ease-out;
  -ms-transition: 0.4s all ease-out;
  -o-transition: 0.4s all ease-out;
}

.home.ourproject .slider-project .list-slider .image .capt {
  padding: 70px 75px 155px 60px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
}

.home.ourproject .slider-project .list-slider .image .capt h3 {
  font-size: 32px;
  font-weight: 700;
  color: #fff;
}

.home.ourproject .slider-project .list-slider .image .capt span {
  position: absolute;
  bottom: 100px;
  left: 17px;
  color: #fff;
  transform: rotate(-90deg);
  -webkit-transform: rotate(-90deg);
  -moz-transform: rotate(-90deg);
  -ms-transform: rotate(-90deg);
  -o-transform: rotate(-90deg);
  transform-origin: 10px 5px;
  font-size: 20px;
  font-family: "Oswald", sans-serif;
  letter-spacing: 3px;
}

.home.ourproject .slider-project .list-slider .image:hover img {
  transform: scale(1.1);
  -webkit-transform: scale(1.1);
  -moz-transform: scale(1.1);
  -ms-transform: scale(1.1);
  -o-transform: scale(1.1);
  filter: brightness(100%);
}

.home.ourproject .slider-project .slick-arrow {
  border: none;
  background: none;
  color: #fff;
  font-size: 16px;
  font-family: "Oswald", sans-serif;
  z-index: 44;
  cursor: pointer;
}

.home.ourproject .slider-project .slick-arrow.slick-next {
  position: absolute;
  right: 60px;
  bottom: 55px;
  padding-right: 27px;
}

.home.ourproject .slider-project .slick-arrow.slick-next:before {
  content: '';
  background: url("../images/material/arr-slide-r.png");
  width: 19px;
  height: 13px;
  position: absolute;
  right: 0;
  top: 7px;
}

.home.ourproject .slider-project .slick-arrow.slick-prev {
  position: absolute;
  left: 60px;
  bottom: 55px;
  padding-left: 27px;
}

.home.ourproject .slider-project .slick-arrow.slick-prev:before {
  content: '';
  background: url("../images/material/arr-slide-l.png");
  width: 19px;
  height: 13px;
  left: 0;
  top: 7px;
  position: absolute;
}

.middle-content {
  padding: 0 0 115px;
}

.middle-content.nopad {
  padding: 0;
}

.middle-content .exp {
  color: #003e72;
  font-weight: 700;
}

.contactus {
  padding-top: 65px;
  background: url("../images/material/bg-contact.png") no-repeat left;
}

.contactus .wrapper11 {
  min-height: 708px;
}

.pagging {
  text-align: center;
  margin-top: 60px;
}

.pagging:after {
  content: '';
  display: block;
  clear: both;
}

.pagging a {
  display: inline-block;
  font-size: 16px;
  color: #555555;
  width: 22px;
  height: 22px;
  margin: 0 20px;
  line-height: 20px;
}

.pagging a:hover {
  background: #f08214;
  color: #fff;
  transition: 0.15s linear all;
  -webkit-transition: 0.15s linear all;
  -moz-transition: 0.15s linear all;
  -ms-transition: 0.15s linear all;
  -o-transition: 0.15s linear all;
}

.pagging a.active {
  background: #f08214;
  color: #fff;
}

.pagging .prev {
  float: left;
}

.pagging .next {
  float: right;
}

.pagging .prev, .pagging .next {
  width: auto;
}

.pagging .prev:hover, .pagging .next:hover {
  width: auto;
  background: none;
  color: #f08214;
}

.images-contact {
  position: absolute;
  left: 0;
  bottom: 0;
}

.quote.nomrgn {
  margin-top: 0;
  margin-bottom: 70px;
}

.quote h3 {
  font-size: 39px;
  font-weight: 300;
  margin-bottom: 20px;
}

.quote p {
  font-size: 16px;
  line-height: 26px;
  color: #555555;
}

.quote .tittle-bl {
  font-size: 19px;
  color: #005aa8;
  margin-bottom: 20px;
  font-weight: 700;
  margin-bottom: 20px;
  display: block;
}

.quote h5 {
  font-size: 19px;
  font-weight: 700;
  margin-bottom: 20px;
  color: #000;
}

.quote ul {
  margin-bottom: 35px;
}

.quote ul li {
  background: url("../images/material/li.png") no-repeat left 8px;
  padding-left: 25px;
  margin-bottom: 10px;
  font-size: 16px;
  line-height: 26px;
  position: relative;
}

.box-form {
  width: 665px;
  float: right;
  margin-top: 65px;
}

.box-form .row {
  width: 100%;
  margin-bottom: 60px;
}

.box-form .row:after {
  clear: both;
  display: block;
  content: '';
}

.box-form .row:last-child {
  margin-bottom: 0;
}

.box-form .col {
  position: relative;
}

.box-form .col.full {
  width: 100%;
}

.box-form .col.half {
  width: 45%;
  margin-right: 10%;
  float: left;
}

.box-form .col.half:last-child {
  margin-right: 0;
}

.box-form .col.submit {
  width: 50%;
  float: left;
}

.box-form .col.submit:nth-child(2) {
  float: right;
  width: auto;
}

.box-form .col label {
  display: block;
  font-size: 16px;
  font-family: "Open Sans", sans-serif;
  font-weight: 700;
  margin-bottom: 10px;
  padding-left: 10px;
}

.box-form .col label.gry {
  color: #999;
  font-weight: 400;
  padding-left: 0;
}

.box-form .col input[type='text'], .box-form .col input[type='email'],
.box-form .col textarea {
  width: 100%;
  border: none;
  border-bottom: 1px solid #ccc;
  font-size: 16px;
  font-family: "Open Sans", sans-serif;
  color: #999999;
}

.box-form .col input[type='text']:focus, .box-form .col input[type='email']:focus,
.box-form .col textarea:focus {
  border-bottom: 1px solid #f08519;
}

.box-form .col span {
  font-size: 16px;
  font-family: "Open Sans", sans-serif;
  color: #999;
  margin-bottom: 10px;
}

.box-form .col span.error {
  font-size: 12px;
  color: #ea1213;
  margin: 10px 0;
  display: block;
  font-style: italic;
}

.box-form .col h6 {
  color: #333333;
  font-size: 16px;
  font-family: "Open Sans", sans-serif;
  position: relative;
}

.box-form .col h6 .email {
  color: #f08214;
}

.box-form .col .input_file {
  border: none;
  border-bottom: 1px solid #ccc;
  width: 100%;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  position: relative;
}

.box-form .col .input_file span {
  padding-left: 20px;
  line-height: 35px;
}

.box-form .col .input_file:before {
  content: '';
  background: url("../images/material/ic-file.png") no-repeat center;
  position: absolute;
  top: 0;
  right: 0;
  width: 20px;
  height: 18px;
  cursor: pointer;
}

.box-form .col .input_file input[type="file"] {
  width: 100%;
}

.box-form.inquiry h5 {
  font-size: 19px;
  font-weight: 700;
  color: #005aa8;
  margin-bottom: 20px;
}

.box-form.inquiry h2 {
  font-size: 28px;
  font-weight: 600;
  margin-bottom: 25px;
  text-transform: uppercase;
}

.box-form.career {
  float: none;
  width: 100%;
  margin-bottom: 70px;
}

.box-form.career h2 {
  margin-bottom: 30px;
  font-weight: 700;
}

.banner-slider {
  position: relative;
}

.banner-slider .list-slider .images-slide {
  height: 100vh;
}

.banner-slider .list-slider .images-slide img {
  width: 100vw;
  height: 100vh;
  object-fit: cover;
}

.banner-slider .box-caption {
  width: 750px;
  position: absolute;
  right: 210px;
  top: 280px;
  height: 380px;
  text-align: right;
}

.banner-slider .box-caption h1 {
  font-size: 80px;
  font-family: "Oswald", sans-serif;
  color: #fff;
  letter-spacing: 10px;
  margin-bottom: 35px;
}

.banner-slider .box-caption h5 {
  font-size: 16px;
  font-family: "Montserrat", sans-serif;
  color: #fff;
  line-height: 20px;
  margin-left: 25%;
  margin-bottom: 27px;
}

.banner-slider .slick-dots {
  position: absolute;
  left: 70px;
  bottom: 50px;
}

.banner-slider .slick-dots li {
  display: inline-block;
  cursor: pointer;
  padding: 0 0 30px;
  position: relative;
  margin: 0 5px 0 0;
  height: 30px;
  width: 20px;
  position: relative;
}

.banner-slider .slick-dots li:before {
  content: '';
  width: 3px;
  height: auto;
  background: rgba(255, 255, 255, 0.4);
  position: absolute;
  top: auto;
  left: 0;
  bottom: 0;
  height: 20px;
  right: 0;
  margin: auto;
}

.banner-slider .slick-dots li button {
  padding: 0;
  border: none;
  width: 100%;
  height: 100%;
  background: none;
  text-align: left;
  font-size: 16px;
  font-weight: bold;
  color: #fff;
  cursor: pointer;
  font-family: 'Open Sans', sans-serif;
  opacity: 0;
  transition: 0.2s ease-out all;
  -webkit-transition: 0.2s ease-out all;
  -moz-transition: 0.2s ease-out all;
  -ms-transition: 0.2s ease-out all;
  -o-transition: 0.2s ease-out all;
}

.banner-slider .slick-dots li button:before {
  content: '0';
  position: relative;
  display: inline-block;
}

.banner-slider .slick-dots li.slick-active button {
  display: block;
  opacity: 1;
}

.banner-slider .slick-dots li.slick-active:before {
  background: #fff;
  height: 30px;
}

.middle-content .banner-std {
  position: relative;
}

.middle-content .banner-std img {
  width: 100%;
}

.middle-content .banner-std:before {
  /*content:''; width: 100%; background: url('../images/material/banner-shdw.png')no-repeat center; position: absolute; top: 0; left: 0; right: 0; bottom: 0; */
}

.middle-content .banner-std .caption {
  position: absolute;
  width: 1200px;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  -webkit-transform: translate(-50%, -50%);
  -moz-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  -o-transform: translate(-50%, -50%);
  color: #fff;
  z-index: 45;
}

.middle-content .banner-std .caption .big {
  font-size: 160px;
  font-family: "Open Sans", sans-serif;
  font-weight: 700;
  opacity: 0.2;
  position: absolute;
  left: -70px;
  top: -80px;
}

.middle-content .banner-std .caption .big.lf135 {
  left: -135px;
}

.middle-content .banner-std .caption .small {
  font-size: 74px;
  font-family: "Open Sans", sans-serif;
  font-weight: 700;
}

.middle-content .banner-std .caption.w15 {
  width: 1500px;
}

.middle-content .banner-std.full {
  height: 100vh;
}

.middle-content .banner-std.full img {
  height: 100%;
  object-fit: cover;
}

.box-project {
  width: 1560px;
  margin: 145px auto;
}

.box-project .list-images {
  margin-bottom: 110px;
  position: relative;
}

.box-project .list-images:after {
  content: '';
  width: 100%;
  height: 100%;
  border: 2px solid #fff;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  transform: scale(0.95, 0.9);
  -webkit-transform: scale(0.95, 0.9);
  -moz-transform: scale(0.95, 0.9);
  -ms-transform: scale(0.95, 0.9);
  -o-transform: scale(0.95, 0.9);
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  opacity: 0.4;
}

.box-project .list-images:before {
  content: '';
  background: url("../images/material/project-shd.png") no-repeat center;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  display: none;
}

.box-project .list-images .caption {
  position: absolute;
  top: 40%;
  left: 100px;
  color: #fff;
  width: 575px;
  z-index: 49;
}

.box-project .list-images .caption h2 {
  font-size: 49px;
  margin-bottom: 30px;
  font-weight: 700;
}

.box-project .list-images .caption p {
  font-size: 16px;
  line-height: 26px;
}

.box-project .list-images .caption a {
  color: #f08519;
  font-size: 16px;
  font-weight: 700;
  position: relative;
  padding-right: 65px;
}

.box-project .list-images .caption a:before {
  content: '';
  width: 45px;
  height: 2px;
  background: #f08519;
  position: absolute;
  right: 0;
  top: 10px;
}

.career .list-img {
  width: 48%;
  margin-right: 4%;
  float: left;
  position: relative;
}

.career .list-img:before {
  content: '';
  background: url("../images/material/content-shdw.png") no-repeat center;
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  width: 100%;
  height: 100%;
  background-size: cover;
}

.career .list-img:last-child {
  margin-right: 0;
}

.career .list-img .caption-career {
  position: absolute;
  width: 270px;
  bottom: 35px;
  left: 45px;
  color: #fff;
}

.career .list-img .caption-career h6 {
  font-size: 19px;
  font-weight: 700;
  margin-bottom: 10px;
}

.career .list-img .caption-career p {
  font-size: 14px;
}

.career .list-img .caption-career:before {
  content: '';
  width: 60px;
  height: 4px;
  background: #f08214;
  position: absolute;
  bottom: 0;
  left: 0;
}

.career .list-img img {
  width: 100%;
}

.box-listcareer {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

.box-listcareer .list-career {
  background: #efefef;
  padding: 30px 35px;
  margin-bottom: 20px;
}

.box-listcareer .list-career:after {
  clear: both;
  content: '';
  display: block;
}

.box-listcareer .list-career .desc {
  float: left;
}

.box-listcareer .list-career .desc h5 {
  font-size: 19px;
  font-weight: 600;
  margin-bottom: 10px;
}

.box-listcareer .list-career .desc p {
  margin: 0;
  font-size: 14px;
}

.box-listcareer .list-career .btn-learn {
  float: right;
}

.box-listcareer .list-career hr {
  width: 100%;
  height: 1px;
  background: #e0e0e0;
}

.img-ctn {
  margin-bottom: 70px;
  position: relative;
}

.img-ctn:after {
  content: '';
  display: block;
  clear: both;
}

.img-ctn:before {
  content: '';
  width: 100%;
  height: 100%;
  border: 2px solid #fff;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  transform: scale(0.95, 0.85);
  -webkit-transform: scale(0.95, 0.85);
  -moz-transform: scale(0.95, 0.85);
  -ms-transform: scale(0.95, 0.85);
  -o-transform: scale(0.95, 0.85);
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0.4;
}

.img-ctn img {
  width: 100%;
}

.aboutus {
  position: relative;
}

.aboutus .text {
  width: 635px;
  height: 545px;
  float: right;
  text-align: right;
  padding-top: 165px;
}

.aboutus .text h3 {
  margin-bottom: 30px;
  color: #005aa8;
  font-size: 30px;
  font-weight: 700;
  text-transform: uppercase;
  padding-bottom: 25px;
  position: relative;
}

.aboutus .text h3:before {
  content: '';
  height: 6px;
  width: 79px;
  background: #f08519;
  position: absolute;
  left: 0;
  bottom: 0;
}

.aboutus .text p {
  font-size: 16px;
  color: #555;
  line-height: 26px;
}

.aboutus .bg-right {
  background: #fff url("../images/material/bg-right.png") no-repeat right bottom;
}

.aboutus .bg-right:after {
  content: '';
  display: block;
  clear: both;
}

.aboutus .bg-right .text {
  float: left;
  text-align: left;
}

.aboutus .bg-right .text h3:before {
  content: '';
  height: 6px;
  width: 79px;
  background: #f08519;
  position: absolute;
  left: 0;
  bottom: 0;
}

.aboutus .bg-left {
  background: url("../images/material/bg-left.png") no-repeat left bottom;
}

.aboutus .bg-left:after {
  content: '';
  display: block;
  clear: both;
}

.aboutus .bg-left .text h3:before {
  content: '';
  height: 6px;
  width: 79px;
  background: #f08519;
  position: absolute;
  left: 100%;
  bottom: 0;
  margin-left: -79px;
}

.box-sales {
  margin-bottom: 40px;
}

.box-sales .row {
  width: 100%;
  height: 198px;
}

.box-sales .row:after {
  content: '';
  display: block;
  clear: both;
}

.box-sales .row .col {
  width: 50%;
  float: left;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

.box-sales .row .col:after {
  content: '';
  display: block;
  clear: both;
}

.box-sales .row .col .foto {
  float: left;
  width: 50%;
  height: 100%;
  line-height: 0;
}

.box-sales .row .col .cp {
  background: #e5e5e5;
  width: 50%;
  float: left;
  padding: 79px 30px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

.box-sales .row .col .cp h6 {
  font-size: 16px;
  font-weight: 700;
  margin-bottom: 10px;
  color: #000;
}

.box-sales .row .col .cp .number {
  font-size: 13px;
  color: #000;
}

.promo {
  padding-top: 100px;
}

.promo .wrapper11 {
  width: 1110px;
}

.box-promo {
  margin-left: 0 -15px;
}

.box-promo:after {
  content: '';
  display: block;
  clear: both;
}

.box-promo .col {
  float: left;
  width: 30.63%;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  margin-bottom: 30px;
}

.box-promo .col:nth-child(3n+3) {
  margin-right: 0;
}

.box-promo .col .wrap-pad {
  padding: 0 15px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

.box-promo .col .foto {
  margin-bottom: 20px;
}

.box-promo .col .text .tgl {
  font-size: 14px;
  font-weight: 300;
  color: #989898;
  margin-bottom: 10px;
  display: block;
}

.box-promo .col .text h4 {
  font-size: 22px;
  color: #000;
  font-weight: 700;
  margin-bottom: 10px;
  line-height: 30px;
}

.box-promo .col .text p {
  font-size: 18px;
  color: #333333;
  line-height: 28px;
  margin-bottom: 0;
}

.project .banner-project {
  position: relative;
}

.project .banner-project .capt {
  position: absolute;
  top: 40%;
  left: 275px;
  color: #fff;
  width: 570px;
}

.project .banner-project .capt h1 {
  font-size: 60px;
  font-family: "Oswald", sans-serif;
  letter-spacing: 5px;
  position: relative;
  padding-bottom: 40px;
  margin-bottom: 40px;
}

.project .banner-project .capt h1:before {
  content: '';
  width: 45px;
  height: 4px;
  background: #f08519;
  position: absolute;
  bottom: 0;
  left: 0;
}

.project .banner-project .capt p {
  font-size: 18px;
  line-height: 27px;
  font-family: "Montserrat", sans-serif;
}

.fasilitas {
  position: relative;
  padding: 200px 0;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

.fasilitas .imges-fasilitas {
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  -moz-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  -o-transform: translateY(-50%);
}

.fasilitas .box-text .c-left {
  position: relative;
  z-index: 5;
}

.fasilitas .box-text .c-left .caption-2 {
  position: relative;
  margin-bottom: 20px;
}

.fasilitas .box-text .c-left .caption-2 .big {
  font-size: 160px;
  font-weight: 700;
  color: rgba(0, 0, 0, 0.05);
  position: absolute;
  left: -215px;
  top: -90px;
}

.fasilitas .box-text .c-left .caption-2 .small {
  font-size: 50px;
  color: #003a6c;
  font-family: "Oswald", sans-serif;
}

.fasilitas .box-text .c-left .wrap-sub {
  width: 420px;
  height: auto;
}

.fasilitas .box-text .c-left .wrap-sub h3 {
  font-size: 24px;
  line-height: 30px;
  margin-bottom: 25px;
}

.fasilitas .box-text .c-left .wrap-sub .sub-prgph {
  margin-bottom: 15px;
}

.fasilitas .box-text .c-left .wrap-sub .sub-prgph .t-orange {
  font-size: 16px;
  font-weight: 700;
  color: #f08519;
  margin-bottom: 15px;
}

.fasilitas .box-text .c-left .wrap-sub .sub-prgph p {
  font-size: 16px;
  color: #555555;
}

.siteplan {
  background: url("../images/material/site-plan.png") no-repeat center;
  position: relative;
  height: 700px;
  padding: 100px 0;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

.siteplan .content {
  width: 1030px;
  margin: 0 auto;
  position: relative;
}

.siteplan .content:after {
  content: '';
  display: block;
  clear: both;
}

.siteplan .content .img-siteplan {
  width: 475px;
  height: 455px;
  float: left;
}

.siteplan .content .img-siteplan.full {
  width: 100%;
  height: auto;
  float: none;
}

.siteplan .content .img-siteplan.full img {
  width: 100%;
  height: 500px;
}

.siteplan .content .big {
  font-size: 160px;
  color: rgba(0, 0, 0, 0.05);
  position: absolute;
  right: -150px;
  top: -70px;
  font-weight: 700;
}

.siteplan .content .tab {
  width: 485px;
  border-bottom: 1px solid #fff;
  padding-bottom: 15px;
  margin-bottom: 20px;
  position: relative;
  z-index: 99;
  position: absolute;
  top: 15px;
  right: 0;
}

.siteplan .content .tab ul:after {
  clear: both;
  display: block;
  content: '';
}

.siteplan .content .tab ul li {
  float: left;
  margin-right: 50px;
}

.siteplan .content .tab ul li:last-child {
  margin-right: 0;
}

.siteplan .content .tab ul li a {
  font-size: 16px;
  color: #fff;
  position: relative;
}

.siteplan .content .tab ul li a:before {
  content: '';
  width: 0px;
  height: 4px;
  background: #f08519;
  position: absolute;
  bottom: -15px;
  left: 0;
  transition: 0.2s linear all;
  -webkit-transition: 0.2s linear all;
  -moz-transition: 0.2s linear all;
  -ms-transition: 0.2s linear all;
  -o-transition: 0.2s linear all;
}

.siteplan .content .tab ul li a:hover:before {
  width: 100%;
  transition: 0.2s linear all;
  -webkit-transition: 0.2s linear all;
  -moz-transition: 0.2s linear all;
  -ms-transition: 0.2s linear all;
  -o-transition: 0.2s linear all;
}

.siteplan .content .tab ul li.active a:before {
  width: 100%;
  transition: 0.2s linear all;
  -webkit-transition: 0.2s linear all;
  -moz-transition: 0.2s linear all;
  -ms-transition: 0.2s linear all;
  -o-transition: 0.2s linear all;
}

.siteplan .content .content-right {
  float: right;
  width: 485px;
  padding-top: 60px;
}

.siteplan .content .content-right p {
  color: #fff;
  font-size: 16px;
  line-height: 28px;
}

.siteplan .content .content-right .isi .torange {
  font-size: 19px;
  font-weight: 700;
  color: #f08519;
  margin-bottom: 20px;
  display: block;
}

.siteplan .content .content-right .isi .row {
  width: 100%;
  color: #fff;
  border-bottom: 1px solid #fff;
  padding-bottom: 5px;
  margin-bottom: 20px;
}

.siteplan .content .content-right .isi .row:after {
  content: '';
  display: block;
  clear: both;
}

.siteplan .content .content-right .isi .row p {
  float: left;
  font-size: 16px;
}

.siteplan .content .content-right .isi .row .ket {
  float: right;
  font-size: 16px;
}

.siteplan.map {
  height: auto;
  background-size: cover;
}

.siteplan.map .big {
  z-index: 1;
}

.siteplan.map .img-siteplan.full {
  position: relative;
  z-index: 2;
}

.gallery {
  padding: 135px 0;
}

.gallery .tabgallery .tab {
  width: 1370px;
  margin: 0 auto 70px;
  position: relative;
}

.gallery .tabgallery .tab:after {
  clear: both;
  display: block;
  content: '';
}

.gallery .tabgallery .tab .big {
  font-size: 160px;
  color: rgba(0, 58, 108, 0.05);
  position: absolute;
  left: -100px;
  top: -90px;
  font-weight: 700;
}

.gallery .tabgallery .tab .small {
  font-size: 50px;
  font-family: "Oswald", sans-serif;
  color: #003a6c;
}

.gallery .tabgallery .tab ul {
  float: right;
}

.gallery .tabgallery .tab ul li {
  float: left;
  margin-right: 50px;
}

.gallery .tabgallery .tab ul li:last-child {
  margin-right: 0;
}

.gallery .tabgallery .tab ul li a {
  font-size: 16px;
  color: #333;
  position: relative;
}

.gallery .tabgallery .tab ul li a:before {
  content: '';
  width: 0px;
  height: 4px;
  background: #f08519;
  position: absolute;
  bottom: -15px;
  left: 0;
  transition: 0.2s linear all;
  -webkit-transition: 0.2s linear all;
  -moz-transition: 0.2s linear all;
  -ms-transition: 0.2s linear all;
  -o-transition: 0.2s linear all;
}

.gallery .tabgallery .tab ul li a:hover:before {
  width: 100%;
  transition: 0.2s linear all;
  -webkit-transition: 0.2s linear all;
  -moz-transition: 0.2s linear all;
  -ms-transition: 0.2s linear all;
  -o-transition: 0.2s linear all;
}

.gallery .tabgallery .tab ul li.active a {
  font-weight: 700;
}

.gallery .tabgallery .tab ul li.active a:before {
  width: 100%;
  transition: 0.2s linear all;
  -webkit-transition: 0.2s linear all;
  -moz-transition: 0.2s linear all;
  -ms-transition: 0.2s linear all;
  -o-transition: 0.2s linear all;
}

.gallery .tabgallery .tab-container .slider-gallery {
  position: relative;
}

.gallery .tabgallery .tab-container .slider-gallery .list-slider {
  width: 960px;
  margin: 0 10px;
  position: relative;
  transform: scale(0.8);
  -webkit-transform: scale(0.8);
  -moz-transform: scale(0.8);
  -ms-transform: scale(0.8);
  -o-transform: scale(0.8);
  transition: 0.2s ease-out all;
  -webkit-transition: 0.2s ease-out all;
  -moz-transition: 0.2s ease-out all;
  -ms-transition: 0.2s ease-out all;
  -o-transition: 0.2s ease-out all;
}

.gallery .tabgallery .tab-container .slider-gallery .list-slider:after {
  content: '';
  width: 100%;
  height: 100%;
  border: 2px solid #fff;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  transform: scale(0.95, 0.9);
  -webkit-transform: scale(0.95, 0.9);
  -moz-transform: scale(0.95, 0.9);
  -ms-transform: scale(0.95, 0.9);
  -o-transform: scale(0.95, 0.9);
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  opacity: 0.4;
}

.gallery .tabgallery .tab-container .slider-gallery .list-slider.slick-current.slick-active img {
  filter: brightness(100%);
  transition: all 0.15s ease-out;
  -webkit-transition: all 0.15s ease-out;
  -moz-transition: all 0.15s ease-out;
  -ms-transition: all 0.15s ease-out;
  -o-transition: all 0.15s ease-out;
}

.gallery .tabgallery .tab-container .slider-gallery .list-slider.slick-current.slick-active.slick-center {
  transform: scale(1);
  -webkit-transform: scale(1);
  -moz-transform: scale(1);
  -ms-transform: scale(1);
  -o-transform: scale(1);
}

.gallery .tabgallery .tab-container .slider-gallery .list-slider img {
  filter: brightness(40%);
  width: 100%;
}

.gallery .tabgallery .tab-container .slider-gallery .slick-arrow {
  position: absolute;
  top: 50%;
  z-index: 80;
  background: #f08214;
  border: none;
  color: #fff;
  font-style: italic;
  font-size: 16px;
  line-height: 25px;
  padding: 5px 10px;
  cursor: pointer;
}

.gallery .tabgallery .tab-container .slider-gallery .slick-arrow.slick-prev {
  left: 22.2%;
  transform: translateX(-40%);
  -webkit-transform: translateX(-40%);
  -moz-transform: translateX(-40%);
  -ms-transform: translateX(-40%);
  -o-transform: translateX(-40%);
}

.gallery .tabgallery .tab-container .slider-gallery .slick-arrow.slick-next {
  right: 20.85%;
  transform: translateX(-40%);
  -webkit-transform: translateX(-40%);
  -moz-transform: translateX(-40%);
  -ms-transform: translateX(-40%);
  -o-transform: translateX(-40%);
}

.specification {
  width: 100%;
  min-height: 810px;
  position: relative;
}

.specification:before {
  content: '';
  width: 100%;
  height: 100%;
  border: 2px solid #fff;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  transform: scale(0.8, 0.85);
  -webkit-transform: scale(0.8, 0.85);
  -moz-transform: scale(0.8, 0.85);
  -ms-transform: scale(0.8, 0.85);
  -o-transform: scale(0.8, 0.85);
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0.4;
}

.specification .wrap {
  width: 1570px;
  padding: 150px 0;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  margin: auto;
  position: relative;
}

.specification .wrap:after {
  clear: both;
  display: block;
  content: '';
}

.specification .big {
  font-size: 160px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.5);
  position: absolute;
  left: -40px;
  top: 60px;
  z-index: 1;
}

.specification .caption {
  position: relative;
  float: left;
  width: 44.58%;
  padding-left: 70px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  z-index: 2;
}

.specification .caption .small {
  font-size: 50px;
  font-family: "Oswald", sans-serif;
  letter-spacing: 5px;
  color: #fff;
}

.specification .content-spec {
  float: right;
  width: 50.9%;
  background: rgba(255, 255, 255, 0.8);
  padding: 30px 0 30px 65px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  z-index: 85;
  position: relative;
}

.specification .content-spec:after {
  clear: both;
  display: block;
  content: '';
}

.specification .content-spec .col-left {
  float: left;
  width: 45.03%;
  margin-right: 4.08%;
}

.specification .content-spec .col-right {
  float: left;
  width: 40%;
}

.specification .content-spec .sub .orange {
  color: #f08519;
  font-weight: 700;
  font-size: 16px;
  margin-bottom: 5px;
  display: block;
}

.specification .content-spec .sub p {
  font-size: 16px;
  color: #555;
}

.location {
  background: #f0f0f0;
  padding: 70px 0;
  position: relative;
}

.location .wrap {
  width: 1570px;
  margin: auto;
}

.location .wrap:after {
  content: '';
  clear: both;
  display: block;
}

.location .big {
  font-size: 120px;
  font-weight: 700;
  color: rgba(0, 0, 0, 0.05);
  position: absolute;
  left: 50px;
  top: 40px;
  letter-spacing: 5px;
}

.location .ket .small {
  font-size: 50px;
  color: #003a6c;
  font-family: "Oswald", sans-serif;
  margin-bottom: 30px;
  display: block;
}

.location .box-text h3 {
  font-size: 24px;
  color: #111;
  margin-bottom: 20px;
}

.location .box-text p {
  font-size: 16px;
  color: #555555;
  margin-bottom: 20px;
}

.location .box-text .c-sub {
  width: 500px;
}

.location .box-text .c-sub:after {
  content: '';
  clear: both;
  display: block;
}

.location .box-text .c-sub p {
  margin-bottom: 10px;
}

.location .box-text .c-sub .c-left {
  float: left;
  width: 44%;
}

.location .box-text .c-sub .c-right {
  float: right;
  width: 44%;
}

.location .content {
  width: 42.67%;
  float: left;
  padding-left: 100px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  padding-top: 60px;
}

.location .map {
  width: 50.95%;
  float: right;
}

.location .map #idMap {
  height: 420px;
  width: 100%;
}

.location .map .addrs {
  background: #003a6c;
  padding: 35px 45px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  color: #fff;
}

.location .map .addrs p {
  font-size: 16px;
  margin-bottom: 5px;
}

.contactus {
  position: relative;
  padding-top: 90px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

.contactus .big {
  font-size: 160px;
  font-weight: 700;
  color: rgba(0, 0, 0, 0.05);
  position: absolute;
  left: -200px;
  top: 20px;
  bottom: 0;
  right: 0;
  text-align: center;
  letter-spacing: 5px;
  text-transform: uppercase;
}

.contactus .tiitle .small {
  font-size: 50px;
  font-family: "Oswald", sans-serif;
  text-align: center;
  display: block;
  color: #003a6c;
  letter-spacing: 5px;
  text-transform: uppercase;
  padding-top: 70px;
}

.btn-back a {
  font-weight: bold;
  font-size: 14px;
  color: #f08519;
}

.search {
  padding-top: 100px;
}

.search .search-text {
  margin-bottom: 40px;
}

.search .search-text input[type='text'] {
  width: 100%;
  border: none;
  border-bottom: 1px solid #ccc;
  font-size: 22px;
  font-family: "Open Sans", sans-serif;
  color: #999999;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  padding-right: 40px;
  background: url("../images/material/ico-searchorange.png") no-repeat right;
}

.search .search-text small {
  font-size: 16px;
  text-align: left;
  margin-top: 15px;
  color: #999;
  display: block;
}

.search .box-srch .list-srch {
  margin-bottom: 20px;
  border-bottom: 1px solid #ffab66;
}

.search .box-srch .list-srch a {
  font-size: 22px;
  color: #f08214;
  text-transform: uppercase;
  margin-bottom: 10px;
  display: block;
}

.typage {
  text-align: center;
  padding-top: 100px;
}

.typage h2 {
  font-size: 60px;
}

.pager-home {
  position: fixed;
  left: auto;
  right: 3%;
  top: 60%;
  bottom: 0;
  z-index: 55;
  margin: auto 0;
  transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  -moz-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  -o-transform: translateY(-50%);
}

.pager-home a {
  display: block;
  width: 40px;
  height: 5px;
  background: #f08519;
  margin-bottom: 20px;
  position: relative;
  box-shadow: 2px 2px 40px -4px #000;
  -webkit-box-shadow: 2px 2px 40px -4px #000;
  -moz-box-shadow: 2px 2px 40px -4px #000;
  -ms-box-shadow: 2px 2px 40px -4px #000;
  -o-box-shadow: 2px 2px 40px -4px #000;
}

.pager-home a:before {
  content: '';
  position: absolute;
  width: 40px;
  height: 5px;
  right: 0;
  top: 0;
  display: block;
  left: auto;
  background: #f08519;
  transition: 0.2s all ease-out;
  -webkit-transition: 0.2s all ease-out;
  -moz-transition: 0.2s all ease-out;
  -ms-transition: 0.2s all ease-out;
  -o-transition: 0.2s all ease-out;
}

.pager-home a:hover:before, .pager-home a.active:before {
  width: 100px;
}

/* footer
----------------------------------------------------------------------------------------------*/
footer {
  height: 110px;
  width: 100%;
  background: #003d72;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

footer .box-foot {
  padding: 35px 0 0;
  font-size: 13px;
  color: #c8c8c8;
}

footer .box-foot:after {
  content: '';
  clear: both;
  display: block;
}

footer .box-foot .addrs {
  text-align: left;
  width: auto;
  float: left;
  margin-right: 110px;
}

footer .box-foot .addrs label {
  font-weight: 700;
}

footer .box-foot .copy {
  text-align: center;
  width: auto;
  float: left;
  margin-top: 10px;
}

footer .box-foot .copy a {
  color: #fff;
}

footer .box-foot .copy a:hover {
  text-decoration: underline;
}

footer .box-foot .fr {
  float: right;
  margin-top: 10px;
}

footer .box-foot .fr .terms {
  text-align: center;
  width: auto;
  float: left;
  margin-right: 30px;
  margin-top: 5px;
}

footer .box-foot .fr .terms a {
  color: #fff;
  display: inline-block;
  border-right: 1px solid #fff;
  padding-right: 10px;
  margin-right: 10px;
}

footer .box-foot .fr .terms a:last-child {
  border-right: none;
  padding-right: 0;
  margin-right: 0;
}

footer .box-foot .fr .medsos {
  float: left;
}

footer .box-foot .fr .medsos a {
  display: inline-block;
  margin-right: 2px;
}

footer .box-foot .fr .medsos .ic-twt {
  background: url("../images/material/ic-twt.png") no-repeat center;
  width: 26px;
  height: 27px;
}

footer .box-foot .fr .medsos .ic-fb {
  background: url("../images/material/ic-fb.png") no-repeat center;
  width: 26px;
  height: 27px;
}

.slick-slide {
  height: auto !important;
}

.loader-page {
  position: fixed;
  width: 100%;
  height: 100%;
  top: 0;
  z-index: 1000;
  background: #fff;
}

.loader-page .logoload {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  bottom: 0;
  width: 325px;
  height: 89px;
  margin: auto;
}

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGUuY3NzIiwic291cmNlcyI6WyJzdHlsZS5zY3NzIiwic2Fzcy1saWIuc2NzcyIsImJvdXJib24vX2JvdXJib24uc2NzcyIsImJvdXJib24vc2V0dGluZ3MvX3ByZWZpeGVyLnNjc3MiLCJib3VyYm9uL3NldHRpbmdzL19weC10by1lbS5zY3NzIiwiYm91cmJvbi9zZXR0aW5ncy9fYXNzZXQtcGlwZWxpbmUuc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL19hc3NpZ24taW5wdXRzLnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9fY29udGFpbnMuc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL19jb250YWlucy1mYWxzeS5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX2lzLWxlbmd0aC5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX2lzLWxpZ2h0LnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9faXMtbnVtYmVyLnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9faXMtc2l6ZS5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX3B4LXRvLWVtLnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9fcHgtdG8tcmVtLnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9fc2hhZGUuc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL19zdHJpcC11bml0cy5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX3RpbnQuc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL190cmFuc2l0aW9uLXByb3BlcnR5LW5hbWUuc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL191bnBhY2suc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL19tb2R1bGFyLXNjYWxlLnNjc3MiLCJib3VyYm9uL2hlbHBlcnMvX2NvbnZlcnQtdW5pdHMuc2NzcyIsImJvdXJib24vaGVscGVycy9fZGlyZWN0aW9uYWwtdmFsdWVzLnNjc3MiLCJib3VyYm9uL2hlbHBlcnMvX2ZvbnQtc291cmNlLWRlY2xhcmF0aW9uLnNjc3MiLCJib3VyYm9uL2hlbHBlcnMvX2dyYWRpZW50LXBvc2l0aW9ucy1wYXJzZXIuc2NzcyIsImJvdXJib24vaGVscGVycy9fbGluZWFyLWFuZ2xlLXBhcnNlci5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19saW5lYXItZ3JhZGllbnQtcGFyc2VyLnNjc3MiLCJib3VyYm9uL2hlbHBlcnMvX2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyLnNjc3MiLCJib3VyYm9uL2hlbHBlcnMvX2xpbmVhci1zaWRlLWNvcm5lci1wYXJzZXIuc2NzcyIsImJvdXJib24vaGVscGVycy9fcmFkaWFsLWFyZy1wYXJzZXIuc2NzcyIsImJvdXJib24vaGVscGVycy9fcmFkaWFsLXBvc2l0aW9ucy1wYXJzZXIuc2NzcyIsImJvdXJib24vaGVscGVycy9fcmFkaWFsLWdyYWRpZW50LXBhcnNlci5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19yZW5kZXItZ3JhZGllbnRzLnNjc3MiLCJib3VyYm9uL2hlbHBlcnMvX3NoYXBlLXNpemUtc3RyaXBwZXIuc2NzcyIsImJvdXJib24vaGVscGVycy9fc3RyLXRvLW51bS5zY3NzIiwiYm91cmJvbi9jc3MzL19hbmltYXRpb24uc2NzcyIsImJvdXJib24vY3NzMy9fYXBwZWFyYW5jZS5zY3NzIiwiYm91cmJvbi9jc3MzL19iYWNrZmFjZS12aXNpYmlsaXR5LnNjc3MiLCJib3VyYm9uL2NzczMvX2JhY2tncm91bmQuc2NzcyIsImJvdXJib24vY3NzMy9fYmFja2dyb3VuZC1pbWFnZS5zY3NzIiwiYm91cmJvbi9jc3MzL19ib3JkZXItaW1hZ2Uuc2NzcyIsImJvdXJib24vY3NzMy9fY2FsYy5zY3NzIiwiYm91cmJvbi9jc3MzL19jb2x1bW5zLnNjc3MiLCJib3VyYm9uL2NzczMvX2ZpbHRlci5zY3NzIiwiYm91cmJvbi9jc3MzL19mbGV4LWJveC5zY3NzIiwiYm91cmJvbi9jc3MzL19mb250LWZhY2Uuc2NzcyIsImJvdXJib24vY3NzMy9fZm9udC1mZWF0dXJlLXNldHRpbmdzLnNjc3MiLCJib3VyYm9uL2NzczMvX2hpZHBpLW1lZGlhLXF1ZXJ5LnNjc3MiLCJib3VyYm9uL2NzczMvX2h5cGhlbnMuc2NzcyIsImJvdXJib24vY3NzMy9faW1hZ2UtcmVuZGVyaW5nLnNjc3MiLCJib3VyYm9uL2NzczMvX2tleWZyYW1lcy5zY3NzIiwiYm91cmJvbi9jc3MzL19saW5lYXItZ3JhZGllbnQuc2NzcyIsImJvdXJib24vY3NzMy9fcGVyc3BlY3RpdmUuc2NzcyIsImJvdXJib24vY3NzMy9fcGxhY2Vob2xkZXIuc2NzcyIsImJvdXJib24vY3NzMy9fcmFkaWFsLWdyYWRpZW50LnNjc3MiLCJib3VyYm9uL2NzczMvX3NlbGVjdGlvbi5zY3NzIiwiYm91cmJvbi9jc3MzL190ZXh0LWRlY29yYXRpb24uc2NzcyIsImJvdXJib24vY3NzMy9fdHJhbnNmb3JtLnNjc3MiLCJib3VyYm9uL2NzczMvX3RyYW5zaXRpb24uc2NzcyIsImJvdXJib24vY3NzMy9fdXNlci1zZWxlY3Quc2NzcyIsImJvdXJib24vYWRkb25zL19ib3JkZXItY29sb3Iuc2NzcyIsImJvdXJib24vYWRkb25zL19ib3JkZXItcmFkaXVzLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fYm9yZGVyLXN0eWxlLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fYm9yZGVyLXdpZHRoLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fYnV0dG9ucy5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX2NsZWFyZml4LnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fZWxsaXBzaXMuc2NzcyIsImJvdXJib24vYWRkb25zL19mb250LXN0YWNrcy5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX2hpZGUtdGV4dC5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX21hcmdpbi5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX3BhZGRpbmcuc2NzcyIsImJvdXJib24vYWRkb25zL19wb3NpdGlvbi5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX3ByZWZpeGVyLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fcmV0aW5hLWltYWdlLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fc2l6ZS5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX3RleHQtaW5wdXRzLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fdGltaW5nLWZ1bmN0aW9ucy5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX3RyaWFuZ2xlLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fd29yZC13cmFwLnNjc3MiLCJib3VyYm9uL19ib3VyYm9uLWRlcHJlY2F0ZWQtdXBjb21pbmcuc2NzcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVx0XHJcbiAgICBDb21wYW55ICAgIDogUFQgV2ViIEFyY2hpdGVjdCBUZWNobm9sb2d5IC0gd2ViYXJxLmNvbVxyXG4gICAgRG9jdW1lbnQgICA6IFN0eWxlc2hlZXRcclxuICAgIEF1dGhvciAgICAgOiBHaGFsaWEgQWR6YW5hXHJcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xyXG5AaW1wb3J0IFwic2Fzcy1saWJcIjtcclxuXHJcbmJvZHkgeyAgICBcclxuICAgIGNvbG9yOiAjMzMzO1xyXG4gICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgZm9udC1mYW1pbHk6ICRmLW9wOyBcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcclxufVxyXG5maWd1cmV7XHJcbiAgICBtYXJnaW46IDA7IHBhZGRpbmc6IDA7XHJcbiAgICBpbWd7dmVydGljYWwtYWxpZ246IG1pZGRsZTt9XHJcbn1cclxuaW1neyBib3JkZXI6MDsgbWF4LXdpZHRoOjEwMCU7IGhlaWdodDphdXRvOyB9XHJcbnAge1xyXG4gICAgbWFyZ2luOiAxcHggMCAxNXB4O1xyXG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XHJcbn1cclxuaW5wdXQsIHRleHRhcmVhLCBzZWxlY3Qge1xyXG4gICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgYm9yZGVyOiBub25lO1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgI0Q4RDhEODtcclxuICAgIHBhZGRpbmc6IDEwcHg7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBjb2xvcjogIzY2NjtcclxuICAgIGFwcGVhcmFuY2U6IG5vbmU7XHJcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XHJcbiAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XHJcbn1cclxuaW5wdXRbdHlwZT1jaGVja2JveF0sIGlucHV0W3R5cGU9cmFkaW9dIHtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IG5vbmU7XHJcbiAgICBib3JkZXItcmlnaHQtc3R5bGU6IG5vbmU7XHJcbiAgICBib3JkZXItYm90dG9tLXN0eWxlOiBub25lO1xyXG4gICAgYm9yZGVyLWxlZnQtc3R5bGU6IG5vbmU7XHJcbn1cclxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiwgXHJcbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24gIHtcclxuICAgIGFwcGVhcmFuY2U6IG5vbmU7XHJcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XHJcbiAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XHJcbiAgICBvcGFjaXR5OiAwO1xyXG59XHJcbmlucHV0W3R5cGU9bnVtYmVyXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbixcclxuaW5wdXRbdHlwZT1udW1iZXJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uIHtcclxuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcclxuICAgIG1hcmdpbjogMDtcclxufVxyXG5heyAgfVxyXG5oMSB7IGZvbnQtc2l6ZTogMzJweDsgfVxyXG5oMiB7IGZvbnQtc2l6ZTogMjhweDsgfVxyXG5oMyB7IGZvbnQtc2l6ZTogMjRweDsgfVxyXG5oNCB7IGZvbnQtc2l6ZTogMjBweDsgfSBcclxuaDUgeyBmb250LXNpemU6IDE2cHg7IH0gXHJcbmg2IHsgZm9udC1zaXplOiAxNHB4OyB9XHJcbi8qIHN0cnVjdHVyZSBcclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcbnNlY3Rpb24geyBwb3NpdGlvbjogcmVsYXRpdmU7IG92ZXJmbG93OiBoaWRkZW47IH1cclxuLndyYXBwZXIxNXt3aWR0aDogMTUwMHB4O21hcmdpbjogMCBhdXRvO31cclxuLndyYXBwZXIxMXsgXHJcbiAgICB3aWR0aDogMTE2OHB4OyBtYXJnaW46MCBhdXRvOyAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgJjphZnRlcnsgZGlzcGxheTogYmxvY2s7IGNsZWFyOiBib3RoOyBjb250ZW50OiAnJzsgfVxyXG59XHJcbi53cmFwcGVyNzl7IHdpZHRoOjc5MHB4OyAgbWFyZ2luOjY1cHggYXV0byAwOyAgfVxyXG4ud3JhcHBlcjEzeyB3aWR0aDogMTM3MHB4OyBtYXJnaW46IDAgYXV0bzsgfVxyXG4uYnRuLWJsdWV7fVxyXG4uYnRuLWxlYXJueyBcclxuICAgIHBhZGRpbmc6IDAgMjBweDsgY29sb3I6ICNmZmY7IGJhY2tncm91bmQ6I2YwODUxOTsgZm9udC1zaXplOiAxNnB4OyBmb250LWZhbWlseTogJGYtb3A7IGZvbnQtd2VpZ2h0OiAkYm9sZDsgIGJvcmRlcjogbm9uZTsgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgbWluLXdpZHRoOiAxNTBweDsgdGV4dC1hbGlnbjogY2VudGVyOyBAaW5jbHVkZSBib3hTaXppbmcoYm9yZGVyLWJveCk7IGxpbmUtaGVpZ2h0OiA1MHB4O0BpbmNsdWRlIHRyYW5zaXRpb24oYWxsIGVhc2Utb3V0IDAuNHMpO1xyXG4gICAgLyomOmhvdmVye1xyXG4gICAgICAgIGNvbG9yOiNmNTgyMjA7IGJhY2tncm91bmQ6ICMwMDYwYWY7IEBpbmNsdWRlIHRyYW5zaXRpb24oMC4yIGVhc2Utb3V0IGFsbCk7XHJcbiAgICB9Ki9cclxuICAgICYubG9hZHsgbWFyZ2luOiBhdXRvOyB0ZXh0LWFsaWduOiBjZW50ZXI7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgd2lkdGg6IDE1MHB4O31cclxuICAgICY6aG92ZXJ7XHJcbiAgICAgICAgYmFja2dyb3VuZDogI2VjYTA1NDsgY29sb3I6ICNmZmY7XHJcbiAgICB9XHJcbn1cclxuLmJ0bi1jZW50ZXJ7dGV4dC1hbGlnbjogY2VudGVyO31cclxuXHJcbi8qIGhlYWRlclxyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuaGVhZGVye1xyXG4gICAgcG9zaXRpb246IGZpeGVkOyB0b3A6IDA7IGxlZnQ6IDA7IHJpZ2h0OiAwOyBoZWlnaHQ6IDkwcHg7IHotaW5kZXg6IDk5OTsgQGluY2x1ZGUgdHJhbnNpdGlvbigwLjJzIGVhc2Utb3V0IGJhY2tncm91bmQpO1xyXG4gICAgJjphZnRlcnsgY29udGVudDonJzsgZGlzcGxheTogYmxvY2s7IGNsZWFyOiBib3RoOyB9XHJcbiAgICAubG9nb3tcclxuICAgICAgICBmbG9hdDogbGVmdDtcclxuICAgIH1cclxuICAgIC5yaWdodC1tZW51e1xyXG4gICAgICAgIGZsb2F0OiByaWdodDsgd2lkdGg6IDE1MHB4OyBtYXJnaW4tdG9wOiAzMHB4OyBtYXJnaW4tcmlnaHQ6IDYwcHg7IHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAmOmFmdGVyeyBjb250ZW50OicnOyBkaXNwbGF5OiBibG9jazsgY2xlYXI6IGJvdGg7IH1cclxuICAgICAgICAmOmJlZm9yZXsgY29udGVudDonJzsgd2lkdGg6IDFweDsgaGVpZ2h0OiAzMHB4OyBiYWNrZ3JvdW5kOiAjZmZmOyBcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDA7IGxlZnQ6IDA7IHJpZ2h0OiAwOyBtYXJnaW46MCBhdXRvO1xyXG4gICAgICAgIH1cclxuICAgICAgICAuc2VhcmNoe1xyXG4gICAgICAgICAgICBmbG9hdDogbGVmdDsgcG9zaXRpb246IHJlbGF0aXZlOyBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgICAgICAgc3BhbntcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAzMHB4OyBoZWlnaHQ6IDMwcHg7IGJhY2tncm91bmQ6IHVybCgnLi4vaW1hZ2VzL21hdGVyaWFsL2ljby1zZWFyY2gucG5nJyluby1yZXBlYXQgY2VudGVyOyBwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDA7IHRvcDowO1xyXG4gICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLmZvcm0tc2VhcmNoe1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7IHJpZ2h0OiAwOyB0b3A6IDA7IG92ZXJmbG93OiBoaWRkZW47IHdpZHRoOiAwO1xyXG4gICAgICAgICAgICBpbnB1dFt0eXBlPSd0ZXh0J117IHBvc2l0aW9uOiByZWxhdGl2ZTsgd2lkdGg6IDQwMHB4OyBib3JkZXI6bm9uZTsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjZjA4NjFiOyAgZm9udC1zaXplOiAxNnB4OyBjb2xvcjojOTk5OTk5OyB9XHJcbiAgICAgICAgICAgIGlucHV0W3R5cGU9J3N1Ym1pdCddeyBwb3NpdGlvbjogYWJzb2x1dGU7IHJpZ2h0OiAwOyB0b3A6IDA7IGJvcmRlcjpub25lOyBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9tYXRlcmlhbC9pY28tc2VhcmNoLnBuZycpbm8tcmVwZWF0IGNlbnRlcjsgd2lkdGg6IDMwcHg7IGhlaWdodDogMzBweDsgY3Vyc29yOiBwb2ludGVyOyAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAudG9nZ2xlbWVudXtcclxuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0OyB3aWR0aDogNDBweDsgaGVpZ2h0OjQwcHg7IHBvc2l0aW9uOiByZWxhdGl2ZTsgY3Vyc29yOiBwb2ludGVyOyB6LWluZGV4OiAxMDA7XHJcblxyXG4gICAgICAgICAgICBzcGFueyBcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDNweDsgYmFja2dyb3VuZDogI2ZmZjsgZGlzcGxheTogYmxvY2s7IHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oMC4ycyBlYXNlLW91dCBhbGwpO1xyXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMSl7IHRvcDogMDsgfVxyXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMil7IHRvcDogMTJweDsgIH1cclxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDMpeyB0b3A6IDI0cHg7IH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmLmNsb3Nle1xyXG4gICAgICAgICAgICAgICAgc3BhbnsgIFxyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XHJcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMSl7IHRvcDogMTJweDsgQGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZSg0NWRlZykpOyB9XHJcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMil7IG9wYWNpdHk6IDA7IH1cclxuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgzKXsgdG9wOiAxMnB4OyBAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRlKC00NWRlZykpOyB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAucmlnaHQtaGVhZGVye1xyXG4gICAgICAgIHdpZHRoOiA1MDBweDsgaGVpZ2h0OiAxMDB2aDsgYmFja2dyb3VuZDogIzAzMzA1ODsgcG9zaXRpb246IGZpeGVkOyB0b3A6IDA7IGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgIHJpZ2h0OiAwOyBwYWRkaW5nOiAxMThweCA2MHB4IDgwcHg7IEBpbmNsdWRlIGJveFNpemluZyhib3JkZXItYm94KTsgei1pbmRleDogOTk7XHJcbiAgICAgICAgIG5hdnsgXHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gICAgICAgICAgICB1bHtcclxuICAgICAgICAgICAgICAgIGF7IFxyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjZmZmOyBcclxuICAgICAgICAgICAgICAgICAgICAmOmhvdmVye1xyXG4gICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjZjA4MjE0O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgPmxpe1xyXG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZToyNHB4OyBmb250LXdlaWdodDogJGJvbGQ7IG1hcmdpbi1ib3R0b206IDE1cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgJi5jaGlsZHsgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID4gYXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOmJlZm9yZXsgY29udGVudDonJzsgYmFja2dyb3VuZDp1cmwoLi4vaW1hZ2VzL21hdGVyaWFsL2Fyci1kb3duLXdodC5wbmcpbm8tcmVwZWF0IGxlZnQ7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgd2lkdGg6IDE2cHg7IGhlaWdodDogMTBweDsgbGVmdDotMzBweDsgdG9wOjA7IGJvdHRvbTogMDsgbWFyZ2luOmF1dG8gMDsgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJjpob3ZlcntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjZjA4MjE0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJjpiZWZvcmV7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDp1cmwoLi4vaW1hZ2VzL21hdGVyaWFsL2Fyci1kb3duLXdodC5wbmcpbm8tcmVwZWF0IHJpZ2h0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IFxyXG4gICAgICAgICAgICAgICAgICAgIH0gXHJcblxyXG4gICAgICAgICAgICAgICAgICAgID51bHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTsgbWFyZ2luLWJvdHRvbTogMzVweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgPmxpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxOXB4OyBmb250LXdlaWdodDogNDAwOyAgbWFyZ2luLWJvdHRvbTogMDsgbWFyZ2luLXRvcDogMTVweDsgY29sb3I6ICNiZWQyZTM7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmLmFjdGl2ZXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBheyBjb2xvcjojZjA4MjE0OyB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9ICAgICBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICB9XHJcbiAgICAgICAgIC5ib3h7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgYm90dG9tOiA4NXB4OyBsZWZ0OiAwOyByaWdodDogMDsgbWFyZ2luOiAwIDYwcHg7XHJcbiAgICAgICAgICAgICY6YWZ0ZXJ7IGNvbnRlbnQ6Jyc7IGNsZWFyOiBib3RoOyBkaXNwbGF5OiBibG9jazsgfVxyXG4gICAgICAgICAgICAuYm94LWxhbmd7IFxyXG4gICAgICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICAgICAgICAgICAgICBzcGFueyAgICBcclxuICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGR7IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OjEwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICY6YWZ0ZXJ7IGNvbnRlbnQ6Jy8nOyBwb3NpdGlvbjogYWJzb2x1dGU7IHJpZ2h0OiAwOyB0b3A6IDA7IGNvbG9yOiAjOGJhZGNiOyBmb250LXNpemU6IDE2cHg7IH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgJjpob3ZlciwuYWN0aXZleyBcclxuICAgICAgICAgICAgICAgICAgICAgICAgYXsgY29sb3I6I2YwODYxYjsgZm9udC13ZWlnaHQ6IDYwMDsgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBheyBmb250LXNpemU6MTZweDsgY29sb3I6ICM4YmFkY2I7fVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC5ib3gtcGhvbmV7IFxyXG4gICAgICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xyXG4gICAgICAgICAgICAgICAgYXsgXHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICNiZWNmZGU7IGZvbnQtc2l6ZTogMTZweDsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBwb3NpdGlvbjogcmVsYXRpdmU7IHBhZGRpbmctbGVmdDogMzVweDtcclxuICAgICAgICAgICAgICAgICAgICAmOmJlZm9yZXsgY29udGVudDonJzsgYmFja2dyb3VuZDp1cmwoJy4uL2ltYWdlcy9tYXRlcmlhbC9pYy1waG9uZS5wbmcnKW5vLXJlcGVhdCBjZW50ZXI7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgdG9wOiAtNXB4OyB3aWR0aDogMjZweDsgaGVpZ2h0OiAyNnB4OyB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLm92ZXJsYXl7XHJcbiAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsgdG9wOiAwOyByaWdodDogMDsgYm90dG9tOiAwOyBsZWZ0OiAwOyBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuOCk7IGRpc3BsYXk6IG5vbmU7IHotaW5kZXg6OTg7XHJcbiAgICB9XHJcbiAgICAmLmZsb2F0LCAmLmhlYWR3aGl0ZXtcclxuICAgICAgICBiYWNrZ3JvdW5kOiNmZmY7IEBpbmNsdWRlIGJveFNoYWRvdygwcHggMnB4IDE1cHggLTVweCByZ2JhKDAsMCwwLDAuNzUpKTtcclxuICAgICAgICAuc2VhcmNoe1xyXG4gICAgICAgICAgICBzcGFueyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9tYXRlcmlhbC9pY28tc2VhcmNob3JhbmdlLnBuZycpOyB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC50b2dnbGVtZW51e1xyXG4gICAgICAgICAgICBzcGFueyBiYWNrZ3JvdW5kOiAjZjA4NTE5OyB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5yaWdodC1tZW51e1xyXG4gICAgICAgICAgICAmOmJlZm9yZXsgYmFja2dyb3VuZDojZjA4NTE5OyB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5cclxuLyogZW5kIG9mIGhlYWRlciAqL1xyXG5cclxuLyogbWlkZGxlXHJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG5cclxuLmhvbWV7XHJcblxyXG4gICAgLnRpdHRsZXtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgaDJ7IGZvbnQtc2l6ZTogNDJweDsgY29sb3I6ICMwMDVhYTg7IGZvbnQtd2VpZ2h0OiAkYm9sZDsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgZm9udC1mYW1pbHk6JGYtb3M7IGxldHRlci1zcGFjaW5nOiA4cHg7ICB9XHJcbiAgICAgICAgc3BhbnsgY29sb3I6I2YwODIxNDsgbWFyZ2luLWxlZnQ6IDEwcHg7IH1cclxuICAgIH1cclxuXHJcbiAgICAmLmFib3V0LXVze1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiA2NXB4O1xyXG4gICAgICAgIC5ib3gtYWJvdXR7XHJcbiAgICAgICAgICAgIHdpZHRoOiAzODZweDsgaGVpZ2h0OiAzODZweDsgcG9zaXRpb246IHJlbGF0aXZlOyBtYXJnaW46MTAwcHggYXV0bztcclxuICAgICAgICAgICAgLmJnLWltYWdlc3tcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAzODZweDsgaGVpZ2h0OiAzODZweDsgQGluY2x1ZGUgYm9yZGVyUmFkaXVzKDEwMCUpOyBvdmVyZmxvdzogaGlkZGVuOyBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLmNvbnRlbnQtY2lyY2xlIHtcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDA7IGJvdHRvbTogMDsgcmlnaHQ6IDA7IGxlZnQ6IDA7IG1hcmdpbjogYXV0bztcclxuICAgICAgICAgICAgLmxpc3QtY2lyY3tcclxuICAgICAgICAgICAgICAgIHdpZHRoOiA1MTVweDsgaGVpZ2h0OiA3MHB4OyBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgICAgICAuaWNve1xyXG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgYmFja2dyb3VuZDogI2U5ZTllOTsgd2lkdGg6IDEwM3B4OyBoZWlnaHQ6IDEwM3B4OyBAaW5jbHVkZSBib3JkZXJSYWRpdXMoMTAwJSk7IGZsb2F0OiByaWdodDtcclxuICAgICAgICAgICAgICAgICAgICBpbWd7cG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwOyByaWdodDogMDsgdG9wOiAwOyBib3R0b206IDA7IG1hcmdpbjphdXRvO31cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC50eHR7XHJcbiAgICAgICAgICAgICAgICAgIHdpZHRoOiAzODBweDsgXHJcbiAgICAgICAgICAgICAgICAgIGg2eyBmb250LXNpemU6IDE2cHg7IGZvbnQtZmFtaWx5OiAkZi1vcDsgZm9udC13ZWlnaHQ6ICRib2xkOyBjb2xvcjojMDQzYjY4OyBtYXJnaW4tYm90dG9tOiAxMHB4OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XHJcbiAgICAgICAgICAgICAgICAgIHB7IGZvbnQtc2l6ZTogMTRweDsgZm9udC1mYW1pbHk6ICRmLW9wOyBjb2xvcjogIzU1NTsgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICY6bnRoLW9mLXR5cGUoMSkgeyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogLTIwcHg7IHRleHQtYWxpZ246IHJpZ2h0OyB9XHJcbiAgICAgICAgICAgICAgICAmOm50aC1vZi10eXBlKDIpeyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDotMjBweDsgdGV4dC1hbGlnbjogbGVmdDsgIH1cclxuICAgICAgICAgICAgICAgICY6bnRoLW9mLXR5cGUoMW4pIHtsZWZ0OiAtMTAwJTsgcmlnaHQ6IGF1dG87fVxyXG4gICAgICAgICAgICAgICAgJjpudGgtb2YtdHlwZSgybikge3JpZ2h0OiAtMTAwJTsgbGVmdDogYXV0bzt9XHJcblxyXG4gICAgICAgICAgICAgICAgJjpudGgtb2YtdHlwZSgzKXt0b3A6IDUwJTsgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVkoLTUwJSkpOyBsZWZ0OiAtMTIwJTsgcmlnaHQ6IGF1dG87IHRleHQtYWxpZ246IHJpZ2h0O31cclxuICAgICAgICAgICAgICAgICY6bnRoLW9mLXR5cGUoNCkge3RvcDogNTAlOyBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWSgtNTAlKSk7IHJpZ2h0OiAtMTIwJTt9XHJcblxyXG4gICAgICAgICAgICAgICAgJjpudGgtb2YtdHlwZSg1KSB7IHRvcDogYXV0bzsgYm90dG9tOiAtMTBweDsgdGV4dC1hbGlnbjogcmlnaHQ7IH1cclxuICAgICAgICAgICAgICAgICY6bnRoLW9mLXR5cGUoNikgeyB0b3A6IGF1dG87IGJvdHRvbTogLTEwcHg7ICAgfVxyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAmOm50aC1vZi10eXBlKDJuKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLmljb3sgZmxvYXQ6IGxlZnQ7IH1cclxuICAgICAgICAgICAgICAgICAgICAudHh0eyBmbG9hdDogcmlnaHQ7IH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgJjphZnRlciB7Y2xlYXI6IGJvdGg7IGRpc3BsYXk6IGJsb2NrOyBjb250ZW50OiAnJzt9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaHJ7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDFweDsgYmFja2dyb3VuZDogI2NjYzsgYm9yZGVyOiBub25lOyB9XHJcbiAgICAgICAgXHJcbiAgICB9XHJcblxyXG4gICAgJi5vdXJwcm9qZWN0e1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiA2NXB4O1xyXG4gICAgICAgIC5zbGlkZXItcHJvamVjdHtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogODBweDtcclxuICAgICAgICAgICAgLmxpc3Qtc2xpZGVye1xyXG4gICAgICAgICAgICAgICAgLmltYWdle1xyXG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgICAgICAgICAgICAgICBpbWd7IEBpbmNsdWRlIHRyYW5zaXRpb24oMC40cyBhbGwgZWFzZS1vdXQgKTsgfVxyXG4gICAgICAgICAgICAgICAgICAgIC5jYXB0e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiA3MHB4IDc1cHggMTU1cHggNjBweDsgQGluY2x1ZGUgYm94U2l6aW5nKGJvcmRlci1ib3gpOyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMDsgbGVmdDogMDsgcmlnaHQ6IDA7IGJvdHRvbTogMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaDN7IGZvbnQtc2l6ZTogMzJweDsgZm9udC13ZWlnaHQ6ICRib2xkOyBjb2xvcjogI2ZmZjsgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzcGFue1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOyBib3R0b206IDEwMHB4OyBsZWZ0OiAxN3B4OyBjb2xvcjogI2ZmZjsgIEBpbmNsdWRlIHRyYW5zZm9ybShyb3RhdGUoLTkwZGVnKSk7IHRyYW5zZm9ybS1vcmlnaW46IDEwcHggNXB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAyMHB4OyBmb250LWZhbWlseTogJGYtb3M7IGxldHRlci1zcGFjaW5nOiAzcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgJjpob3ZlcnsgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBpbWd7ICBAaW5jbHVkZSB0cmFuc2Zvcm0oc2NhbGUoMS4xKSk7IGZpbHRlcjogYnJpZ2h0bmVzcygxMDAlKTsgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAuc2xpY2stYXJyb3d7XHJcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7IGJhY2tncm91bmQ6IG5vbmU7IGNvbG9yOiAjZmZmOyBmb250LXNpemU6IDE2cHg7IGZvbnQtZmFtaWx5OiAkZi1vczsgei1pbmRleDogNDQ7ICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgICAgICAgICAgICAmLnNsaWNrLW5leHR7IFxyXG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgcmlnaHQ6IDYwcHg7IGJvdHRvbTogNTVweDsgcGFkZGluZy1yaWdodDogMjdweDtcclxuICAgICAgICAgICAgICAgICAgICAmOmJlZm9yZXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDonJzsgYmFja2dyb3VuZDogdXJsKCcuLi9pbWFnZXMvbWF0ZXJpYWwvYXJyLXNsaWRlLXIucG5nJyk7IHdpZHRoOiAxOXB4OyBoZWlnaHQ6IDEzcHg7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgcmlnaHQ6IDA7IHRvcDogN3B4O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICYuc2xpY2stcHJldnsgIFxyXG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogNjBweDsgYm90dG9tOiA1NXB4OyBwYWRkaW5nLWxlZnQ6IDI3cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICY6YmVmb3Jle1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OicnOyBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9tYXRlcmlhbC9hcnItc2xpZGUtbC5wbmcnKTsgd2lkdGg6IDE5cHg7IGhlaWdodDogMTNweDsgbGVmdDogMDsgdG9wOiA3cHg7IHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG59XHJcbi5taWRkbGUtY29udGVudHtcclxuICAgIHBhZGRpbmc6IDAgMCAxMTVweDtcclxuICAgICYubm9wYWR7XHJcbiAgICAgICAgcGFkZGluZzogMDtcclxuICAgIH1cclxuICAgIC5leHB7IGNvbG9yOiAjMDAzZTcyOyBmb250LXdlaWdodDogJGJvbGQ7ICB9XHJcbn1cclxuLmNvbnRhY3R1c3tcclxuICAgIHBhZGRpbmctdG9wOiA2NXB4OyBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9tYXRlcmlhbC9iZy1jb250YWN0LnBuZycpbm8tcmVwZWF0IGxlZnQ7IFxyXG4gICAgLndyYXBwZXIxMXtcclxuICAgICAgICBtaW4taGVpZ2h0OiA3MDhweDtcclxuICAgIH1cclxuICAgICYuaW5xdWlyeXtcclxuXHJcbiAgICB9XHJcbn1cclxuXHJcbi5wYWdnaW5neyBcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgbWFyZ2luLXRvcDogNjBweDtcclxuICAgICY6YWZ0ZXJ7IGNvbnRlbnQ6Jyc7IGRpc3BsYXk6IGJsb2NrOyBjbGVhcjogYm90aDsgfVxyXG4gICAgYXsgXHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyBmb250LXNpemU6IDE2cHg7IGNvbG9yOiAjNTU1NTU1OyB3aWR0aDoyMnB4OyBoZWlnaHQ6IDIycHg7IG1hcmdpbjowIDIwcHg7IGxpbmUtaGVpZ2h0OiAyMHB4O1xyXG4gICAgICAgICY6aG92ZXJ7IGJhY2tncm91bmQ6I2YwODIxNDsgY29sb3I6ICNmZmY7IEBpbmNsdWRlIHRyYW5zaXRpb24oMC4xNXMgbGluZWFyIGFsbCk7IH1cclxuICAgICAgICAmLmFjdGl2ZXtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDojZjA4MjE0OyBjb2xvcjogI2ZmZjsgXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLnByZXZ7XHJcbiAgICAgICAgZmxvYXQ6IGxlZnQ7ICAgIFxyXG4gICAgICAgIFxyXG4gICAgfVxyXG4gICAgLm5leHR7IGZsb2F0OiByaWdodDsgfVxyXG4gICAgLnByZXYsLm5leHR7IFxyXG4gICAgICAgIHdpZHRoOiBhdXRvOyBcclxuICAgICAgICAmOmhvdmVyIHsgICAgICB3aWR0aDogYXV0bzsgYmFja2dyb3VuZDogbm9uZTsgY29sb3I6ICNmMDgyMTQ7ICAgICAgICB9XHJcbiAgICAgfVxyXG59XHJcblxyXG4uaW1hZ2VzLWNvbnRhY3R7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7bGVmdDogMDsgYm90dG9tOiAwO1xyXG59XHJcblxyXG4ucXVvdGV7XHJcbiAgICAmLm5vbXJnbntcclxuICAgICAgICBtYXJnaW4tdG9wOiAwOyBtYXJnaW4tYm90dG9tOiA3MHB4O1xyXG4gICAgfVxyXG4gICBoM3sgZm9udC1zaXplOiAzOXB4OyBmb250LXdlaWdodDogMzAwOyBtYXJnaW4tYm90dG9tOiAyMHB4OyAgfVxyXG4gICBweyBmb250LXNpemU6IDE2cHg7IGxpbmUtaGVpZ2h0OiAyNnB4OyBjb2xvcjogIzU1NTU1NTsgfVxyXG4gICAudGl0dGxlLWJseyBmb250LXNpemU6IDE5cHg7IGNvbG9yOiAjMDA1YWE4OyBtYXJnaW4tYm90dG9tOiAyMHB4OyBmb250LXdlaWdodDogJGJvbGQ7IG1hcmdpbi1ib3R0b206IDIwcHg7IGRpc3BsYXk6IGJsb2NrOyAgICB9XHJcbiAgICBoNXsgZm9udC1zaXplOiAxOXB4OyBmb250LXdlaWdodDogJGJvbGQ7IG1hcmdpbi1ib3R0b206IDIwcHg7IGNvbG9yOiAjMDAwOyB9XHJcbiAgICB1bHtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAzNXB4O1xyXG4gICAgICAgIGxpeyBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9tYXRlcmlhbC9saS5wbmcnKW5vLXJlcGVhdCBsZWZ0IDhweDtwYWRkaW5nLWxlZnQ6MjVweDsgbWFyZ2luLWJvdHRvbTogMTBweDsgZm9udC1zaXplOiAxNnB4OyBsaW5lLWhlaWdodDogMjZweDsgcG9zaXRpb246IHJlbGF0aXZlOyB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5ib3gtZm9ybXtcclxuICAgIHdpZHRoOiA2NjVweDsgZmxvYXQ6IHJpZ2h0OyBtYXJnaW4tdG9wOiA2NXB4O1xyXG4gICAgLnJvd3tcclxuICAgICAgICB3aWR0aDogMTAwJTsgbWFyZ2luLWJvdHRvbTogNjBweDtcclxuICAgICAgICAmOmFmdGVyeyBjbGVhcjpib3RoOyBkaXNwbGF5OiBibG9jazsgY29udGVudDogJyc7IH1cclxuICAgICAgICAmOmxhc3QtY2hpbGR7IG1hcmdpbi1ib3R0b206IDA7IH1cclxuICAgIH1cclxuICAgIC5jb2x7IFxyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAmLmZ1bGx7IHdpZHRoOiAxMDAlOyAgfVxyXG4gICAgICAgICYuaGFsZnsgXHJcbiAgICAgICAgICAgIHdpZHRoOiA0NSU7IG1hcmdpbi1yaWdodDogMTAlOyBmbG9hdDogbGVmdDtcclxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkeyBtYXJnaW4tcmlnaHQ6IDA7IH1cclxuICAgICAgICB9XHJcbiAgICAgICAgJi5zdWJtaXR7XHJcbiAgICAgICAgICAgIHdpZHRoOiA1MCU7IGZsb2F0OiBsZWZ0O1xyXG4gICAgICAgICAgICAmOm50aC1jaGlsZCgyKXsgZmxvYXQ6IHJpZ2h0OyB3aWR0aDogYXV0bzsgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBsYWJlbHtcclxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7IGZvbnQtc2l6ZTogMTZweDsgZm9udC1mYW1pbHk6ICRmLW9wOyBmb250LXdlaWdodDogJGJvbGQ7IG1hcmdpbi1ib3R0b206IDEwcHg7IHBhZGRpbmctbGVmdDogMTBweDtcclxuICAgICAgICAgICAgJi5ncnl7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogIzk5OTsgIGZvbnQtd2VpZ2h0OiA0MDA7IHBhZGRpbmctbGVmdDogMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpbnB1dFt0eXBlPSd0ZXh0J10sIGlucHV0W3R5cGU9J2VtYWlsJ10sXHJcbiAgICAgICAgdGV4dGFyZWEgeyBcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7IGJvcmRlcjpub25lOyBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYzsgZm9udC1zaXplOiAxNnB4OyBmb250LWZhbWlseTogJGYtb3A7IGNvbG9yOiM5OTk5OTk7IFxyXG4gICAgICAgICAgICAmOmZvY3Vze1xyXG4gICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZjA4NTE5OyBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gXHJcbiAgICAgICAgc3BhbnsgXHJcbiAgICAgICAgIGZvbnQtc2l6ZTogMTZweDsgZm9udC1mYW1pbHk6ICRmLW9wOyBjb2xvcjogIzk5OTsgbWFyZ2luLWJvdHRvbTogMTBweDsgXHJcbiAgICAgICAgICAgJi5lcnJvcntcclxuICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsgY29sb3I6ICNlYTEyMTM7ICAgbWFyZ2luOiAxMHB4IDA7IGRpc3BsYXk6IGJsb2NrOyBmb250LXN0eWxlOiBpdGFsaWM7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaDZ7IFxyXG4gICAgICAgICAgICBjb2xvcjogIzMzMzMzMzsgZm9udC1zaXplOiAxNnB4OyBmb250LWZhbWlseTogJGYtb3A7ICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgIC5lbWFpbHsgY29sb3I6I2YwODIxNDsgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgIC5pbnB1dF9maWxleyBcclxuICAgICAgICAgICAgYm9yZGVyOiBub25lOyBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYzsgd2lkdGg6IDEwMCU7IEBpbmNsdWRlIGJveFNpemluZyhib3JkZXItYm94KTsgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICBzcGFueyBwYWRkaW5nLWxlZnQ6IDIwcHg7IGxpbmUtaGVpZ2h0OiAzNXB4O31cclxuICAgICAgICAgICAgJjpiZWZvcmV7IFxyXG4gICAgICAgICAgICBjb250ZW50OiAnJzsgYmFja2dyb3VuZDogdXJsKCcuLi9pbWFnZXMvbWF0ZXJpYWwvaWMtZmlsZS5wbmcnKW5vLXJlcGVhdCBjZW50ZXI7IHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgIHRvcDogMDsgcmlnaHQ6IDA7IHdpZHRoOiAyMHB4OyBoZWlnaHQ6IDE4cHg7ICBjdXJzb3I6cG9pbnRlcjtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgIH1cclxuICAgICAgICAgICAgaW5wdXRbdHlwZT1cImZpbGVcIl17XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTsgXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAmLmlucXVpcnl7XHJcbiAgICAgICAgaDV7IGZvbnQtc2l6ZToxOXB4OyBmb250LXdlaWdodDogJGJvbGQ7IGNvbG9yOiAjMDA1YWE4OyBtYXJnaW4tYm90dG9tOiAyMHB4OyAgfVxyXG4gICAgICAgIGgyeyBmb250LXNpemU6IDI4cHg7IGZvbnQtd2VpZ2h0OiA2MDA7ICBtYXJnaW4tYm90dG9tOiAyNXB4OyAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgIH1cclxuICAgIH1cclxuICAgICYuY2FyZWVye1xyXG4gICAgICAgIGZsb2F0OiBub25lOyB3aWR0aDogMTAwJTsgbWFyZ2luLWJvdHRvbTogNzBweDtcclxuICAgICAgICBoMnsgbWFyZ2luLWJvdHRvbTogMzBweDsgZm9udC13ZWlnaHQ6ICRib2xkOyB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5iYW5uZXItc2xpZGVye1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgLmxpc3Qtc2xpZGVye1xyXG4gICAgICAgIC5pbWFnZXMtc2xpZGV7XHJcbiAgICAgICAgICAgIGhlaWdodDogMTAwdmg7XHJcbiAgICAgICAgICAgIGltZ3sgXHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwdnc7IGhlaWdodDogMTAwdmg7IG9iamVjdC1maXQ6IGNvdmVyO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLmJveC1jYXB0aW9ue1xyXG4gICAgICAgIHdpZHRoOiA3NTBweDsgcG9zaXRpb246IGFic29sdXRlOyByaWdodDoyMTBweDsgdG9wOjI4MHB4OyBoZWlnaHQ6IDM4MHB4OyB0ZXh0LWFsaWduOiByaWdodDtcclxuICAgICAgICBoMXsgIGZvbnQtc2l6ZTogODBweDsgZm9udC1mYW1pbHk6ICRmLW9zOyBjb2xvcjogI2ZmZjsgbGV0dGVyLXNwYWNpbmc6IDEwcHg7IG1hcmdpbi1ib3R0b206IDM1cHg7IH1cclxuICAgICAgICBoNXsgZm9udC1zaXplOiAxNnB4OyBmb250LWZhbWlseTogJGYtbW87IGNvbG9yOiAjZmZmOyBsaW5lLWhlaWdodDogMjBweDsgbWFyZ2luLWxlZnQ6IDI1JTsgbWFyZ2luLWJvdHRvbTogMjdweDsgfVxyXG4gICAgfVxyXG4gICAgLnNsaWNrLWRvdHN7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO2xlZnQ6NzBweDtib3R0b206NTBweDtcclxuICAgICAgICBsaXtcclxuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO2N1cnNvcjpwb2ludGVyO3BhZGRpbmc6MCAwIDMwcHg7cG9zaXRpb246cmVsYXRpdmU7bWFyZ2luOjAgNXB4IDAgMDsgaGVpZ2h0OiAzMHB4OyB3aWR0aDogMjBweDsgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICAmOmJlZm9yZXtcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6Jyc7IHdpZHRoOiAzcHg7IGhlaWdodDogYXV0bzsgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjQpOyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogYXV0bzsgbGVmdDogMDsgXHJcbiAgICAgICAgICAgICAgICBib3R0b206IDA7IGhlaWdodDogMjBweDsgcmlnaHQ6IDA7IG1hcmdpbjogYXV0bztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBidXR0b257IFxyXG4gICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7Ym9yZGVyOiBub25lO3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTtiYWNrZ3JvdW5kOiBub25lO3RleHQtYWxpZ246IGxlZnQ7Zm9udC1zaXplOiAxNnB4O1xyXG4gICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOyBjb2xvcjogI2ZmZjtjdXJzb3I6IHBvaW50ZXI7IGZvbnQtZmFtaWx5OiAnT3BlbiBTYW5zJywgc2Fucy1zZXJpZjsgb3BhY2l0eTogMDsgQGluY2x1ZGUgdHJhbnNpdGlvbigwLjJzIGVhc2Utb3V0IGFsbCk7XHJcbiAgICAgICAgICAgICAgICAgJjpiZWZvcmUge2NvbnRlbnQ6ICcwJzsgcG9zaXRpb246IHJlbGF0aXZlOyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7fVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICYuc2xpY2stYWN0aXZle1xyXG4gICAgICAgICAgICAgICAgYnV0dG9ueyBkaXNwbGF5OiBibG9jazsgb3BhY2l0eTogMTt9XHJcbiAgICAgICAgICAgICAgICAmOmJlZm9yZXsgYmFja2dyb3VuZDogI2ZmZjsgaGVpZ2h0OiAzMHB4OyB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbi5taWRkbGUtY29udGVudHtcclxuICAgIC5iYW5uZXItc3Rke1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICBpbWd7IHdpZHRoOiAxMDAlOyB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgJjpiZWZvcmV7XHJcbiAgICAgICAgICAgIC8qY29udGVudDonJzsgd2lkdGg6IDEwMCU7IGJhY2tncm91bmQ6IHVybCgnLi4vaW1hZ2VzL21hdGVyaWFsL2Jhbm5lci1zaGR3LnBuZycpbm8tcmVwZWF0IGNlbnRlcjsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDA7IGxlZnQ6IDA7IHJpZ2h0OiAwOyBib3R0b206IDA7ICovXHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5jYXB0aW9ue1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7IHdpZHRoOiAxMjAwcHg7IGxlZnQ6IDUwJTsgdG9wOiA1MCU7IEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGUoLTUwJSwtNTAlKSk7IGNvbG9yOiAjZmZmOyB6LWluZGV4OiA0NTtcclxuICAgICAgICAgICAgLmJpZ3sgXHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDE2MHB4OyBmb250LWZhbWlseTogJGYtb3A7IGZvbnQtd2VpZ2h0OiAkYm9sZDsgb3BhY2l0eTogMC4yOyBwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IC03MHB4OyB0b3A6IC04MHB4OyBcclxuICAgICAgICAgICAgICAgICYubGYxMzV7XHJcbiAgICAgICAgICAgICAgICAgICAgbGVmdDotMTM1cHg7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLnNtYWxseyBmb250LXNpemU6IDc0cHg7IGZvbnQtZmFtaWx5OiAkZi1vcDsgZm9udC13ZWlnaHQ6ICRib2xkOyB9XHJcbiAgICAgICAgICAgICYudzE1e1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDE1MDBweDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAmLmZ1bGx7XHJcbiAgICAgICAgICAgIGhlaWdodDogMTAwdmg7XHJcbiAgICAgICAgICAgIGltZ3sgaGVpZ2h0OiAxMDAlOyBvYmplY3QtZml0OiBjb3ZlcjsgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLmJveC1wcm9qZWN0e1xyXG4gICAgd2lkdGg6IDE1NjBweDsgbWFyZ2luOiAxNDVweCBhdXRvOyBcclxuICAgIC5saXN0LWltYWdlc3sgXHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTEwcHg7IHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAmOmFmdGVye1xyXG4gICAgICAgICAgICBjb250ZW50OicnOyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyBib3JkZXI6IDJweCBzb2xpZCAjZmZmOyBAaW5jbHVkZSBib3hTaXppbmcoYm9yZGVyLWJveCk7IEBpbmNsdWRlIHRyYW5zZm9ybShzY2FsZSgwLjk1LCAwLjkwKSk7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyBsZWZ0OiAwOyByaWdodDogMDsgYm90dG9tOiAwOyBvcGFjaXR5OiAwLjQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICY6YmVmb3JleyBjb250ZW50OicnOyBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9tYXRlcmlhbC9wcm9qZWN0LXNoZC5wbmcnKW5vLXJlcGVhdCBjZW50ZXI7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyBsZWZ0OiAwO1xyXG4gICAgICAgICAgICByaWdodDogMDsgYm90dG9tOiAwOyBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgIH1cclxuICAgICAgICAuY2FwdGlvbntcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOyB0b3A6NDAlOyBsZWZ0OiAxMDBweDsgY29sb3I6ICNmZmY7IHdpZHRoOiA1NzVweDsgei1pbmRleDogNDk7XHJcbiAgICAgICAgICAgIGgyeyBmb250LXNpemU6IDQ5cHg7IG1hcmdpbi1ib3R0b206IDMwcHg7IGZvbnQtd2VpZ2h0OiAkYm9sZDsgfVxyXG4gICAgICAgICAgICBweyBmb250LXNpemU6IDE2cHg7IGxpbmUtaGVpZ2h0OiAyNnB4OyAgfVxyXG4gICAgICAgICAgICBheyBcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAjZjA4NTE5OyBmb250LXNpemU6IDE2cHg7IGZvbnQtd2VpZ2h0OiAkYm9sZDsgcG9zaXRpb246IHJlbGF0aXZlOyBwYWRkaW5nLXJpZ2h0OiA2NXB4O1xyXG4gICAgICAgICAgICAgICAgJjpiZWZvcmV7IGNvbnRlbnQ6Jyc7IHdpZHRoOjQ1cHg7IGhlaWdodDogMnB4OyBiYWNrZ3JvdW5kOiNmMDg1MTk7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgcmlnaHQ6IDA7IHRvcDoxMHB4OyAgIH1cclxuICAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuLmNhcmVlcntcclxuICAgIC5saXN0LWltZ3tcclxuICAgICAgICB3aWR0aDogNDglOyBtYXJnaW4tcmlnaHQ6IDQlOyBmbG9hdDogbGVmdDsgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICY6YmVmb3JleyBcclxuICAgICAgICAgICAgY29udGVudDonJzsgYmFja2dyb3VuZDogdXJsKCcuLi9pbWFnZXMvbWF0ZXJpYWwvY29udGVudC1zaGR3LnBuZycpbm8tcmVwZWF0IGNlbnRlcjsgcG9zaXRpb246IGFic29sdXRlOyBib3R0b206IDA7XHJcbiAgICAgICAgICAgICBsZWZ0OiAwOyByaWdodDogMDsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuICAgICAgICAgfVxyXG4gICAgICAgICY6bGFzdC1jaGlsZHsgbWFyZ2luLXJpZ2h0OjA7IH1cclxuICAgICAgICAuY2FwdGlvbi1jYXJlZXJ7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgIHdpZHRoOiAyNzBweDsgYm90dG9tOiAzNXB4OyBsZWZ0OiA0NXB4OyBjb2xvcjogI2ZmZjtcclxuICAgICAgICAgICAgaDZ7IGZvbnQtc2l6ZToxOXB4OyBmb250LXdlaWdodDogJGJvbGQ7IG1hcmdpbi1ib3R0b206IDEwcHg7ICB9XHJcbiAgICAgICAgICAgIHB7IGZvbnQtc2l6ZTogMTRweDsgIH1cclxuICAgICAgICAgICAgJjpiZWZvcmV7XHJcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJzsgd2lkdGg6IDYwcHg7IGhlaWdodDogNHB4OyBiYWNrZ3JvdW5kOiAjZjA4MjE0OyBwb3NpdGlvbjogYWJzb2x1dGU7IGJvdHRvbTogMDsgbGVmdDogMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpbWd7IHdpZHRoOiAxMDAlOyB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5ib3gtbGlzdGNhcmVlcntcclxuICAgICBAaW5jbHVkZSBib3hTaXppbmcoYm9yZGVyLWJveCk7IFxyXG4gICAgLmxpc3QtY2FyZWVye1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICNlZmVmZWY7IHBhZGRpbmc6IDMwcHggMzVweDttYXJnaW4tYm90dG9tOiAyMHB4O1xyXG4gICAgICAgICAmOmFmdGVyeyBjbGVhcjpib3RoOyBjb250ZW50OiAnJzsgZGlzcGxheTogYmxvY2s7IH0gXHJcbiAgICAgICAgLmRlc2N7XHJcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgICAgICAgICBoNXsgZm9udC1zaXplOiAxOXB4OyBmb250LXdlaWdodDogNjAwOyBtYXJnaW4tYm90dG9tOiAxMHB4OyB9XHJcbiAgICAgICAgICAgIHB7IG1hcmdpbjowOyBmb250LXNpemU6IDE0cHg7ICB9XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgIH1cclxuICAgICAgICAuYnRuLWxlYXJueyBmbG9hdDogcmlnaHQ7IH1cclxuICAgICAgICBocnsgd2lkdGg6IDEwMCU7IGhlaWdodDogMXB4OyBiYWNrZ3JvdW5kOiAjZTBlMGUwOyB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5pbWctY3Rue1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNzBweDsgcG9zaXRpb246IHJlbGF0aXZlOyBcclxuICAgICY6YWZ0ZXJ7XHJcbiAgICAgICAgY29udGVudDonJzsgZGlzcGxheTogYmxvY2s7IGNsZWFyOiBib3RoO1xyXG4gICAgfVxyXG4gICAgJjpiZWZvcmV7XHJcbiAgICAgICAgY29udGVudDonJzsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgYm9yZGVyOiAycHggc29saWQgI2ZmZjsgQGluY2x1ZGUgYm94U2l6aW5nKGJvcmRlci1ib3gpOyBAaW5jbHVkZSB0cmFuc2Zvcm0oc2NhbGUoMC45NSwgMC44NSkpO1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyBsZWZ0OiAwOyBvcGFjaXR5OiAwLjQ7XHJcbiAgICB9XHJcbiAgICBpbWd7IHdpZHRoOiAxMDAlOyB9XHJcbn1cclxuXHJcbi5hYm91dHVze1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgLnRleHR7XHJcbiAgICAgICAgd2lkdGg6IDYzNXB4OyBoZWlnaHQ6IDU0NXB4OyBmbG9hdDogcmlnaHQ7IHRleHQtYWxpZ246IHJpZ2h0OyBwYWRkaW5nLXRvcDogMTY1cHg7XHJcbiAgICAgICAgaDN7IFxyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzMHB4OyBjb2xvcjogIzAwNWFhODsgZm9udC1zaXplOiAzMHB4OyBmb250LXdlaWdodDogJGJvbGQ7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IHBhZGRpbmctYm90dG9tOiAyNXB4O3Bvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgJjpiZWZvcmV7IGNvbnRlbnQ6Jyc7IGhlaWdodDogNnB4OyB3aWR0aDogNzlweDtiYWNrZ3JvdW5kOiAjZjA4NTE5OyBwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDA7IGJvdHRvbTogMDsgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcHsgZm9udC1zaXplOiAxNnB4OyBjb2xvcjojNTU1OyBsaW5lLWhlaWdodDogMjZweDsgIH1cclxuICAgIH1cclxuICAgIC5iZy1yaWdodHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmIHVybCgnLi4vaW1hZ2VzL21hdGVyaWFsL2JnLXJpZ2h0LnBuZycpbm8tcmVwZWF0IHJpZ2h0IGJvdHRvbTsgXHJcbiAgICAgICAgJjphZnRlcnsgY29udGVudDonJzsgZGlzcGxheTogYmxvY2s7IGNsZWFyOiBib3RoOyB9XHJcbiAgICAgICAgLnRleHR7XHJcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0OyB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgICAgICAgICBoM3sgXHJcbiAgICAgICAgICAgICAgICAmOmJlZm9yZXsgY29udGVudDonJzsgaGVpZ2h0OiA2cHg7IHdpZHRoOiA3OXB4O2JhY2tncm91bmQ6ICNmMDg1MTk7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgYm90dG9tOiAwOyAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLmJnLWxlZnR7XHJcbiAgICAgICAgYmFja2dyb3VuZDogdXJsKCcuLi9pbWFnZXMvbWF0ZXJpYWwvYmctbGVmdC5wbmcnKW5vLXJlcGVhdCBsZWZ0IGJvdHRvbTsgXHJcbiAgICAgICAgJjphZnRlcnsgY29udGVudDonJzsgZGlzcGxheTogYmxvY2s7IGNsZWFyOiBib3RoOyB9XHJcbiAgICAgICAgLnRleHR7XHJcbiAgICAgICAgICAgIGgzeyBcclxuICAgICAgICAgICAgICAgICY6YmVmb3JleyBjb250ZW50OicnOyBoZWlnaHQ6IDZweDsgd2lkdGg6IDc5cHg7YmFja2dyb3VuZDogI2YwODUxOTsgcG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAxMDAlOyBib3R0b206IDA7IG1hcmdpbi1sZWZ0OiAtNzlweDsgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfSBcclxufVxyXG4uYm94LXNhbGVze1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNDBweDtcclxuICAgIC5yb3d7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7IGhlaWdodDogMTk4cHg7IFxyXG4gICAgICAgICY6YWZ0ZXJ7IGNvbnRlbnQ6Jyc7IGRpc3BsYXk6IGJsb2NrOyBjbGVhcjogYm90aDsgfVxyXG4gICAgICAgIC5jb2x7XHJcbiAgICAgICAgICAgIHdpZHRoOiA1MCU7IGZsb2F0OmxlZnQ7IEBpbmNsdWRlIGJveFNpemluZyhib3JkZXItYm94KTtcclxuICAgICAgICAgICAgJjphZnRlcnsgY29udGVudDonJzsgZGlzcGxheTogYmxvY2s7IGNsZWFyOiBib3RoOyB9XHJcbiAgICAgICAgICAgIC5mb3Rve1xyXG4gICAgICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7IHdpZHRoOiA1MCU7IGhlaWdodDogMTAwJTsgbGluZS1oZWlnaHQ6IDA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLmNwe1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogI2U1ZTVlNTsgd2lkdGg6IDUwJTsgZmxvYXQ6IGxlZnQ7IHBhZGRpbmc6IDc5cHggMzBweDsgQGluY2x1ZGUgYm94U2l6aW5nKGJvcmRlci1ib3gpO1xyXG4gICAgICAgICAgICAgICAgaDZ7IGZvbnQtc2l6ZTogMTZweDsgZm9udC13ZWlnaHQ6ICRib2xkOyBtYXJnaW4tYm90dG9tOiAxMHB4OyBjb2xvcjogIzAwMDsgfVxyXG4gICAgICAgICAgICAgICAgLm51bWJlcnsgZm9udC1zaXplOiAxM3B4OyBjb2xvcjogIzAwMDsgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4ucHJvbW8ge1xyXG4gICAgcGFkZGluZy10b3A6IDEwMHB4O1xyXG4gICAgLndyYXBwZXIxMSB7d2lkdGg6IDExMTBweDt9XHJcbn1cclxuLmJveC1wcm9tb3tcclxuICAgIG1hcmdpbi1sZWZ0OiAwIC0xNXB4OyBcclxuICAgICY6YWZ0ZXJ7IGNvbnRlbnQ6Jyc7IGRpc3BsYXk6IGJsb2NrOyBjbGVhcjogYm90aDsgfVxyXG4gICAgLmNvbHtcclxuICAgICAgICBmbG9hdDogbGVmdDsgd2lkdGg6IDMwLjYzJTsgQGluY2x1ZGUgYm94U2l6aW5nKGJvcmRlci1ib3gpOyBtYXJnaW4tYm90dG9tOiAzMHB4O1xyXG4gICAgICAgICY6bnRoLWNoaWxkKDNuKzMpe1xyXG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC53cmFwLXBhZHsgcGFkZGluZzogMCAxNXB4OyBAaW5jbHVkZSBib3hTaXppbmcoYm9yZGVyLWJveCk7IH1cclxuICAgICAgICAuZm90b3tcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuICAgICAgICB9XHJcbiAgICAgICAgLnRleHR7XHJcbiAgICAgICAgICAgIC50Z2x7IGZvbnQtc2l6ZTogMTRweDsgZm9udC13ZWlnaHQ6IDMwMDsgY29sb3I6ICM5ODk4OTg7IG1hcmdpbi1ib3R0b206IDEwcHg7IGRpc3BsYXk6IGJsb2NrOyB9XHJcbiAgICAgICAgICAgIGg0eyBmb250LXNpemU6IDIycHg7IGNvbG9yOiAjMDAwOyBmb250LXdlaWdodDogJGJvbGQ7IG1hcmdpbi1ib3R0b206IDEwcHg7IGxpbmUtaGVpZ2h0OiAzMHB4OyB9XHJcbiAgICAgICAgICAgIHB7IGZvbnQtc2l6ZTogMThweDsgY29sb3I6ICMzMzMzMzM7IGxpbmUtaGVpZ2h0OiAyOHB4OyBtYXJnaW4tYm90dG9tOiAwO31cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuLnByb2plY3R7XHJcbiAgICAuYmFubmVyLXByb2plY3R7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIGltZ3tcclxuICAgICAgICB9XHJcbiAgICAgICAgLmNhcHR7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiA0MCU7IGxlZnQ6IDI3NXB4OyBjb2xvcjogI2ZmZjsgd2lkdGg6IDU3MHB4O1xyXG4gICAgICAgICAgICBoMXtcclxuICAgICAgICAgICAgIGZvbnQtc2l6ZTogNjBweDsgZm9udC1mYW1pbHk6ICRmLW9zOyBsZXR0ZXItc3BhY2luZzogNXB4OyBwb3NpdGlvbjogcmVsYXRpdmU7IHBhZGRpbmctYm90dG9tOiA0MHB4OyBtYXJnaW4tYm90dG9tOiA0MHB4O1xyXG4gICAgICAgICAgICAmOmJlZm9yZXsgY29udGVudDonJzsgd2lkdGg6IDQ1cHg7IGhlaWdodDogNHB4OyBiYWNrZ3JvdW5kOiAjZjA4NTE5OyBwb3NpdGlvbjogYWJzb2x1dGU7IGJvdHRvbTogMDsgbGVmdDogMDsgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHB7IGZvbnQtc2l6ZTogMThweDsgbGluZS1oZWlnaHQ6IDI3cHg7IGZvbnQtZmFtaWx5OiAkZi1tbzsgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLmZhc2lsaXRhc3tcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgcGFkZGluZzogMjAwcHggMDsgQGluY2x1ZGUgYm94U2l6aW5nKGJvcmRlci1ib3gpO1xyXG4gICAgLmltZ2VzLWZhc2lsaXRhc3tcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7IHJpZ2h0OiAwOyB0b3A6IDUwJTsgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVkoLTUwJSkpO1xyXG4gICAgfVxyXG4gICAgLmJveC10ZXh0e1xyXG4gICAgICAgIC5jLWxlZnR7IFxyXG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IHotaW5kZXg6IDU7XHJcbiAgICAgICAgICAgIC5jYXB0aW9uLTIge1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG4gICAgICAgICAgICAgICAgLmJpZ3sgZm9udC1zaXplOiAxNjBweDsgZm9udC13ZWlnaHQ6ICRib2xkOyBjb2xvcjogcmdiYSgwLDAsMCwwLjA1KTsgcG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAtMjE1cHg7IHRvcDogLTkwcHg7IH1cclxuICAgICAgICAgICAgICAgIC5zbWFsbHsgZm9udC1zaXplOiA1MHB4OyBjb2xvcjogIzAwM2E2YzsgZm9udC1mYW1pbHk6ICRmLW9zOyAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC53cmFwLXN1YnsgXHJcbiAgICAgICAgICAgICAgICB3aWR0aDogNDIwcHg7IGhlaWdodDogYXV0bztcclxuICAgICAgICAgICAgICAgIGgzeyBmb250LXNpemU6IDI0cHg7IGxpbmUtaGVpZ2h0OiAzMHB4OyBtYXJnaW4tYm90dG9tOiAyNXB4OyB9XHJcbiAgICAgICAgICAgICAgICAuc3ViLXByZ3Boe1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgLnQtb3JhbmdleyBmb250LXNpemU6IDE2cHg7IGZvbnQtd2VpZ2h0OiAkYm9sZDsgY29sb3I6ICNmMDg1MTk7IG1hcmdpbi1ib3R0b206IDE1cHg7ICB9XHJcbiAgICAgICAgICAgICAgICAgICAgcHsgZm9udC1zaXplOiAxNnB4OyBjb2xvcjogIzU1NTU1NTsgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLnNpdGVwbGFue1xyXG4gICAgYmFja2dyb3VuZDogdXJsKCcuLi9pbWFnZXMvbWF0ZXJpYWwvc2l0ZS1wbGFuLnBuZycpbm8tcmVwZWF0IGNlbnRlcjsgcG9zaXRpb246IHJlbGF0aXZlOyBoZWlnaHQ6IDcwMHB4OyBwYWRkaW5nOiAxMDBweCAwOyBAaW5jbHVkZSBib3hTaXppbmcoYm9yZGVyLWJveCk7XHJcbiAgICAuY29udGVudHsgXHJcbiAgICAgICAgd2lkdGg6IDEwMzBweDsgbWFyZ2luOjAgYXV0bzsgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICY6YWZ0ZXJ7IGNvbnRlbnQ6Jyc7IGRpc3BsYXk6IGJsb2NrOyBjbGVhcjogYm90aDsgfVxyXG4gICAgICAgIC5pbWctc2l0ZXBsYW57XHJcbiAgICAgICAgICAgIHdpZHRoOiA0NzVweDsgaGVpZ2h0OiA0NTVweDsgZmxvYXQ6IGxlZnQ7XHJcbiAgICAgICAgICAgICYuZnVsbHsgXHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTsgaGVpZ2h0OiBhdXRvOyBmbG9hdDogbm9uZTtcclxuICAgICAgICAgICAgICAgIGltZ3sgd2lkdGg6IDEwMCU7IGhlaWdodDo1MDBweDsgfVxyXG4gICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAuYmlneyBmb250LXNpemU6IDE2MHB4OyBjb2xvcjogcmdiYSgwLDAsMCwwLjA1KTsgcG9zaXRpb246IGFic29sdXRlOyByaWdodDogLTE1MHB4OyB0b3A6IC03MHB4OyBmb250LXdlaWdodDogJGJvbGQ7fVxyXG4gICAgICAgIC50YWJ7IFxyXG4gICAgICAgICAgICB3aWR0aDogNDg1cHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZmZmOyBwYWRkaW5nLWJvdHRvbTogMTVweDsgbWFyZ2luLWJvdHRvbTogMjBweDsgcG9zaXRpb246IHJlbGF0aXZlOyB6LWluZGV4OiA5OTsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDE1cHg7IHJpZ2h0OiAwO1xyXG4gICAgICAgICAgICB1bHtcclxuICAgICAgICAgICAgICAgICY6YWZ0ZXJ7IGNsZWFyOmJvdGg7IGRpc3BsYXk6IGJsb2NrOyBjb250ZW50OiAnJzsgIH1cclxuICAgICAgICAgICAgICAgIGxpeyBcclxuICAgICAgICAgICAgICAgICAgICBmbG9hdDogbGVmdDsgbWFyZ2luLXJpZ2h0OjUwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkeyBtYXJnaW4tcmlnaHQ6MDsgfSBcclxuICAgICAgICAgICAgICAgICAgICAgYXsgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZToxNnB4OyBjb2xvcjogI2ZmZjsgIHBvc2l0aW9uOiByZWxhdGl2ZTsgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICY6YmVmb3JleyBjb250ZW50OicnOyB3aWR0aDogMHB4OyBoZWlnaHQ6IDRweDsgYmFja2dyb3VuZDojZjA4NTE5OyBwb3NpdGlvbjogYWJzb2x1dGU7IGJvdHRvbTogLTE1cHg7IGxlZnQ6IDA7IEBpbmNsdWRlIHRyYW5zaXRpb24oMC4ycyBsaW5lYXIgYWxsKTsgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAmOmhvdmVye1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJjpiZWZvcmV7IHdpZHRoOjEwMCU7IEBpbmNsdWRlIHRyYW5zaXRpb24oMC4ycyBsaW5lYXIgYWxsKTsgfSBcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAmLmFjdGl2ZXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOmJlZm9yZXsgd2lkdGg6MTAwJTsgQGluY2x1ZGUgdHJhbnNpdGlvbigwLjJzIGxpbmVhciBhbGwpOyB9IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5jb250ZW50LXJpZ2h0eyBcclxuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0OyB3aWR0aDogNDg1cHg7IHBhZGRpbmctdG9wOiA2MHB4O1xyXG4gICAgICAgICAgICAgcHsgY29sb3I6ICNmZmY7ICBmb250LXNpemU6IDE2cHg7IGxpbmUtaGVpZ2h0OiAyOHB4OyB9XHJcblxyXG4gICAgICAgICAgICAuaXNpe1xyXG4gICAgICAgICAgICAgICAgLnRvcmFuZ2V7IGZvbnQtc2l6ZTogMTlweDsgZm9udC13ZWlnaHQ6ICRib2xkOyAgY29sb3I6ICNmMDg1MTk7IG1hcmdpbi1ib3R0b206IDIwcHg7IGRpc3BsYXk6IGJsb2NrO31cclxuICAgICAgICAgICAgICAgIC5yb3d7XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7IGNvbG9yOiAjZmZmOyBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2ZmZjsgcGFkZGluZy1ib3R0b206IDVweDsgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuICAgICAgICAgICAgICAgICAgICAmOmFmdGVyeyBjb250ZW50OicnOyBkaXNwbGF5OiBibG9jazsgY2xlYXI6IGJvdGg7IH1cclxuICAgICAgICAgICAgICAgICAgICBweyBmbG9hdDogbGVmdDsgZm9udC1zaXplOiAxNnB4OyAgfVxyXG4gICAgICAgICAgICAgICAgICAgIC5rZXR7IGZsb2F0OiByaWdodDsgZm9udC1zaXplOiAxNnB4OyAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJi5tYXB7XHJcbiAgICAgICAgaGVpZ2h0OiBhdXRvOyBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG4gICAgICAgIC5iaWd7IHotaW5kZXg6IDE7IH1cclxuICAgICAgICAuaW1nLXNpdGVwbGFue1xyXG4gICAgICAgICAgICAmLmZ1bGx7IHBvc2l0aW9uOiByZWxhdGl2ZTsgei1pbmRleDogMjsgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4uZ2FsbGVyeXtcclxuICAgIHBhZGRpbmc6IDEzNXB4IDA7XHJcbiAgICAudGFiZ2FsbGVyeXtcclxuICAgICAgICAudGFie1xyXG4gICAgICAgICAgICAgd2lkdGg6IDEzNzBweDsgbWFyZ2luOjAgYXV0byA3MHB4OyBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgICAmOmFmdGVyeyBjbGVhcjpib3RoOyBkaXNwbGF5OiBibG9jazsgY29udGVudDogJyc7IH1cclxuICAgICAgICAgICAgLmJpZ3sgZm9udC1zaXplOiAxNjBweDsgY29sb3I6IHJnYmEoMCw1OCwxMDgsMC4wNSk7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogLTEwMHB4OyB0b3A6IC05MHB4OyBmb250LXdlaWdodDogJGJvbGQ7IH1cclxuICAgICAgICAgICAgLnNtYWxseyBmb250LXNpemU6IDUwcHg7IGZvbnQtZmFtaWx5OiAkZi1vczsgY29sb3I6IzAwM2E2YzsgIH1cclxuICAgICAgICAgICAgIHVse1xyXG4gICAgICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xyXG4gICAgICAgICAgICAgICAgbGl7XHJcbiAgICAgICAgICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7IG1hcmdpbi1yaWdodDogNTBweDtcclxuICAgICAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGR7IG1hcmdpbi1yaWdodDowOyB9XHJcbiAgICAgICAgICAgICAgICAgICAgIGF7IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6MTZweDsgY29sb3I6ICMzMzM7ICBwb3NpdGlvbjogcmVsYXRpdmU7IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAmOmJlZm9yZXsgY29udGVudDonJzsgd2lkdGg6IDBweDsgaGVpZ2h0OiA0cHg7IGJhY2tncm91bmQ6I2YwODUxOTsgcG9zaXRpb246IGFic29sdXRlOyBib3R0b206IC0xNXB4OyBsZWZ0OiAwOyBAaW5jbHVkZSB0cmFuc2l0aW9uKDAuMnMgbGluZWFyIGFsbCk7IH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgJjpob3ZlcntcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOmJlZm9yZXsgd2lkdGg6MTAwJTsgQGluY2x1ZGUgdHJhbnNpdGlvbigwLjJzIGxpbmVhciBhbGwpOyB9IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICYuYWN0aXZle1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBhe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkYm9sZDsgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJjpiZWZvcmV7IHdpZHRoOjEwMCU7IEBpbmNsdWRlIHRyYW5zaXRpb24oMC4ycyBsaW5lYXIgYWxsKTsgfSBcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgIH1cclxuICAgICAgICAgfVxyXG5cclxuICAgICAgICAudGFiLWNvbnRhaW5lcntcclxuICAgICAgICAgICAgLnNsaWRlci1nYWxsZXJ5e1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICAgICAgLmxpc3Qtc2xpZGVye1xyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiA5NjBweDsgbWFyZ2luOjAgMTBweDsgcG9zaXRpb246IHJlbGF0aXZlOyAgQGluY2x1ZGUgdHJhbnNmb3JtKHNjYWxlKDAuOCkpOyBAaW5jbHVkZSB0cmFuc2l0aW9uKDAuMnMgZWFzZS1vdXQgYWxsKTtcclxuICAgICAgICAgICAgICAgICAgICAmOmFmdGVye1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OicnOyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyBib3JkZXI6IDJweCBzb2xpZCAjZmZmOyBAaW5jbHVkZSBib3hTaXppbmcoYm9yZGVyLWJveCk7IEBpbmNsdWRlIHRyYW5zZm9ybShzY2FsZSgwLjk1LCAwLjkwKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyBsZWZ0OiAwOyByaWdodDogMDsgYm90dG9tOiAwOyBvcGFjaXR5OiAwLjQ7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICYuc2xpY2stY3VycmVudHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgJi5zbGljay1hY3RpdmV7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1neyBmaWx0ZXI6IGJyaWdodG5lc3MoMTAwJSk7ICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAuMTVzIGVhc2Utb3V0KTsgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJi5zbGljay1jZW50ZXJ7ICBAaW5jbHVkZSB0cmFuc2Zvcm0oc2NhbGUoMSkpOyAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGltZ3sgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcjogYnJpZ2h0bmVzcyg0MCUpOyB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgIC5zbGljay1hcnJvd3tcclxuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDo1MCU7IHotaW5kZXg6IDgwOyBiYWNrZ3JvdW5kOiAjZjA4MjE0OyBib3JkZXI6bm9uZTsgY29sb3I6ICNmZmY7IGZvbnQtc3R5bGU6IGl0YWxpYzsgZm9udC1zaXplOiAxNnB4OyBsaW5lLWhlaWdodDogMjVweDsgXHJcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogNXB4IDEwcHg7IGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICAgICAgICAgICAgICAmLnNsaWNrLXByZXZ7IGxlZnQ6IDIyLjIlOyBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWCgtNDAlKSk7IH1cclxuICAgICAgICAgICAgICAgICAgICAmLnNsaWNrLW5leHR7IHJpZ2h0OiAyMC44NSU7IEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVYKC00MCUpKTsgIH1cclxuICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4uc3BlY2lmaWNhdGlvbntcclxuICAgIHdpZHRoOiAxMDAlOyBtaW4taGVpZ2h0OiA4MTBweDsgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgJjpiZWZvcmV7XHJcbiAgICAgICAgY29udGVudDonJzsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgYm9yZGVyOiAycHggc29saWQgI2ZmZjsgQGluY2x1ZGUgYm94U2l6aW5nKGJvcmRlci1ib3gpOyBAaW5jbHVkZSB0cmFuc2Zvcm0oc2NhbGUoMC44LCAwLjg1KSk7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDA7IGxlZnQ6IDA7IG9wYWNpdHk6IDAuNDtcclxuICAgIH1cclxuICAgIC53cmFwe1xyXG4gICAgICAgIHdpZHRoOiAxNTcwcHg7IHBhZGRpbmc6MTUwcHggMDsgQGluY2x1ZGUgYm94U2l6aW5nKGJvcmRlci1ib3gpOyBtYXJnaW46IGF1dG87IHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAmOmFmdGVyeyBjbGVhcjpib3RoOyBkaXNwbGF5OiBibG9jazsgY29udGVudDogJyc7IH1cclxuICAgIH1cclxuICAgIC5iaWd7XHJcbiAgICAgICAgZm9udC1zaXplOiAxNjBweDsgZm9udC13ZWlnaHQ6ICRib2xkOyBjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjUpOyBwb3NpdGlvbjogYWJzb2x1dGU7bGVmdDogLTQwcHg7IHRvcDogNjBweDsgei1pbmRleDogMTtcclxuICAgIH1cclxuICAgIC5jYXB0aW9ue1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgZmxvYXQ6IGxlZnQ7IHdpZHRoOiA0NC41OCU7IHBhZGRpbmctbGVmdDogNzBweDsgQGluY2x1ZGUgYm94U2l6aW5nKGJvcmRlci1ib3gpOyB6LWluZGV4OiAyO1xyXG4gICAgICAgIC5zbWFsbHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiA1MHB4OyBmb250LWZhbWlseTogJGYtb3M7IGxldHRlci1zcGFjaW5nOiA1cHg7IGNvbG9yOiAjZmZmO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC5jb250ZW50LXNwZWN7IFxyXG4gICAgICAgIGZsb2F0OiByaWdodDsgd2lkdGg6IDUwLjklOyBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuOCk7IHBhZGRpbmc6MzBweCAwIDMwcHggNjVweDsgQGluY2x1ZGUgYm94U2l6aW5nKGJvcmRlci1ib3gpOyB6LWluZGV4OiA4NTsgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICY6YWZ0ZXJ7IGNsZWFyOmJvdGg7IGRpc3BsYXk6IGJsb2NrOyBjb250ZW50OiAnJzsgfVxyXG4gICAgICAgIC5jb2wtbGVmdHtcclxuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7ICB3aWR0aDogNDUuMDMlOyBtYXJnaW4tcmlnaHQ6IDQuMDglO1xyXG4gICAgICAgIH1cclxuICAgICAgICAuY29sLXJpZ2h0e1xyXG4gICAgICAgICAgICBmbG9hdDogbGVmdDsgd2lkdGg6IDQwJTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLnN1YntcclxuICAgICAgICAgICAgLm9yYW5nZXsgY29sb3I6ICNmMDg1MTk7IGZvbnQtd2VpZ2h0OiAkYm9sZDsgZm9udC1zaXplOiAxNnB4OyBtYXJnaW4tYm90dG9tOiA1cHg7IGRpc3BsYXk6IGJsb2NrO31cclxuICAgICAgICAgICAgcHtmb250LXNpemU6IDE2cHg7IGNvbG9yOiAjNTU1O31cclxuICAgICAgICB9XHJcbiAgICB9IFxyXG4gICAgXHJcbn1cclxuXHJcbi5sb2NhdGlvbntcclxuICAgIGJhY2tncm91bmQ6ICNmMGYwZjA7IHBhZGRpbmc6IDcwcHggMDsgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgLndyYXB7IFxyXG4gICAgICAgIHdpZHRoOiAxNTcwcHg7IG1hcmdpbjphdXRvO1xyXG4gICAgICAgICY6YWZ0ZXJ7IGNvbnRlbnQ6Jyc7IGNsZWFyOiBib3RoOyBkaXNwbGF5OiBibG9jazsgfVxyXG4gICAgfVxyXG4gICAgLmJpZ3tcclxuICAgICAgICBmb250LXNpemU6IDEyMHB4OyBmb250LXdlaWdodDogJGJvbGQ7IGNvbG9yOiByZ2JhKDAsMCwwLDAuMDUpOyBwb3NpdGlvbjogYWJzb2x1dGU7bGVmdDogNTBweDsgdG9wOiA0MHB4OyAgbGV0dGVyLXNwYWNpbmc6IDVweDtcclxuICAgIH1cclxuICAgIC5rZXR7IFxyXG4gICAgICAuc21hbGx7XHJcbiAgICAgICAgZm9udC1zaXplOiA1MHB4OyBjb2xvcjogIzAwM2E2YzsgZm9udC1mYW1pbHk6ICRmLW9zOyBtYXJnaW4tYm90dG9tOiAzMHB4OyBkaXNwbGF5OiBibG9jazsgXHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC5ib3gtdGV4dHtcclxuICAgICAgICBoM3sgZm9udC1zaXplOiAyNHB4OyBjb2xvcjojMTExOyBtYXJnaW4tYm90dG9tOjIwcHg7IH1cclxuICAgICAgICBweyBmb250LXNpemU6IDE2cHg7IGNvbG9yOiAjNTU1NTU1OyBtYXJnaW4tYm90dG9tOiAyMHB4OyB9XHJcbiAgICAgICAgLmMtc3Vie1xyXG4gICAgICAgICAgICB3aWR0aDogNTAwcHg7XHJcbiAgICAgICAgICAgICY6YWZ0ZXJ7IGNvbnRlbnQ6Jyc7IGNsZWFyOiBib3RoOyBkaXNwbGF5OiBibG9jazsgfVxyXG4gICAgICAgICAgICBweyBtYXJnaW4tYm90dG9tOiAxMHB4OyB9XHJcbiAgICAgICAgICAgIC5jLWxlZnR7XHJcbiAgICAgICAgICAgICAgICBmbG9hdDogbGVmdDsgd2lkdGg6IDQ0JTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAuYy1yaWdodHtcclxuICAgICAgICAgICAgICAgIGZsb2F0OiByaWdodDsgd2lkdGg6IDQ0JTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gXHJcbiAgICB9XHJcbiAgICAuY29udGVudHtcclxuICAgICAgICB3aWR0aDogNDIuNjclOyBmbG9hdDogbGVmdDsgcGFkZGluZy1sZWZ0OiAxMDBweDsgQGluY2x1ZGUgYm94U2l6aW5nKGJvcmRlci1ib3gpOyBwYWRkaW5nLXRvcDogNjBweDtcclxuICAgIH1cclxuICAgIC5tYXB7XHJcbiAgICAgICAgd2lkdGg6IDUwLjk1JTsgIGZsb2F0OiByaWdodDtcclxuICAgICAgICAjaWRNYXB7IGhlaWdodDogNDIwcHg7IHdpZHRoOiAxMDAlOyB9XHJcbiAgICAgICAgLmFkZHJzeyBcclxuICAgICAgICAgICAgYmFja2dyb3VuZDojMDAzYTZjOyBwYWRkaW5nOiAzNXB4IDQ1cHg7IEBpbmNsdWRlIGJveFNpemluZyhib3JkZXItYm94KTsgY29sb3I6ICNmZmY7IFxyXG4gICAgICAgICAgICBweyBmb250LXNpemU6IDE2cHg7IG1hcmdpbi1ib3R0b206IDVweDsgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5jb250YWN0dXN7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IHBhZGRpbmctdG9wOiA5MHB4OyBAaW5jbHVkZSBib3hTaXppbmcoYm9yZGVyLWJveCk7XHJcbiAgICAgLmJpZ3sgZm9udC1zaXplOiAxNjBweDsgZm9udC13ZWlnaHQ6ICRib2xkOyBjb2xvcjogcmdiYSgwLDAsMCwwLjA1KTsgcG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAtMjAwcHg7IHRvcDogMjBweDsgYm90dG9tOiAwOyByaWdodDogMDsgIHRleHQtYWxpZ246IGNlbnRlcjsgbGV0dGVyLXNwYWNpbmc6IDVweDsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTt9XHJcbiAgICAudGlpdGxle1xyXG4gICAgICAgLnNtYWxseyBmb250LXNpemU6IDUwcHg7IGZvbnQtZmFtaWx5OiAkZi1vczsgdGV4dC1hbGlnbjogY2VudGVyOyBkaXNwbGF5OiBibG9jazsgY29sb3I6ICMwMDNhNmM7IGxldHRlci1zcGFjaW5nOiA1cHg7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IHBhZGRpbmctdG9wOiA3MHB4OyB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5idG4tYmFja3tcclxuICAgIGF7IGZvbnQtd2VpZ2h0OiBib2xkOyBmb250LXNpemU6IDE0cHg7IGNvbG9yOiAjZjA4NTE5OyB9XHJcbn1cclxuXHJcbi5zZWFyY2h7XHJcbiAgICBwYWRkaW5nLXRvcDogMTAwcHg7XHJcbiAgICAuc2VhcmNoLXRleHR7IFxyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7XHJcbiAgICAgICAgaW5wdXRbdHlwZT0ndGV4dCdde1xyXG4gICAgICAgICAgIHdpZHRoOiAxMDAlOyBib3JkZXI6bm9uZTsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7IGZvbnQtc2l6ZTogMjJweDsgZm9udC1mYW1pbHk6ICRmLW9wOyBjb2xvcjojOTk5OTk5OyAgQGluY2x1ZGUgYm94U2l6aW5nKGJvcmRlci1ib3gpO1xyXG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiA0MHB4OyBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9tYXRlcmlhbC9pY28tc2VhcmNob3JhbmdlLnBuZycpbm8tcmVwZWF0IHJpZ2h0O1xyXG4gICAgICAgIH1cclxuICAgICAgICBzbWFsbHsgZm9udC1zaXplOiAxNnB4OyB0ZXh0LWFsaWduOiBsZWZ0OyBtYXJnaW4tdG9wOiAxNXB4OyBjb2xvcjogIzk5OTsgZGlzcGxheTogYmxvY2s7IH1cclxuICAgIH1cclxuICAgIC5ib3gtc3JjaHtcclxuICAgICAgICAubGlzdC1zcmNoeyBcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNmZmFiNjY7XHJcbiAgICAgICAgICAgIGF7IGZvbnQtc2l6ZTogMjJweDsgY29sb3I6ICNmMDgyMTQ7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IG1hcmdpbi1ib3R0b206IDEwcHg7IGRpc3BsYXk6IGJsb2NrOyB9XHJcbiAgICAgICAgICAgIHB7fVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4udHlwYWdle1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyBwYWRkaW5nLXRvcDogMTAwcHg7XHJcbiAgICBoMnsgZm9udC1zaXplOiA2MHB4OyB9XHJcbn1cclxuXHJcbi5wYWdlci1ob21le1xyXG4gICAgcG9zaXRpb246IGZpeGVkOyBsZWZ0OiBhdXRvOyByaWdodDogMyU7IHRvcDo2MCU7IGJvdHRvbTogMDsgei1pbmRleDo1NTsgbWFyZ2luOiBhdXRvIDA7IEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVZKC01MCUpKTtcclxuICAgIGF7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7IHdpZHRoOiA0MHB4OyBoZWlnaHQ6IDVweDsgYmFja2dyb3VuZDojZjA4NTE5OyBtYXJnaW4tYm90dG9tOiAyMHB4OyBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgQGluY2x1ZGUgYm94U2hhZG93KDJweCAycHggNDBweCAtNHB4ICMwMDApOyBcclxuICAgICAgICAmOmJlZm9yZXsgXHJcbiAgICAgICAgICAgIGNvbnRlbnQ6Jyc7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgd2lkdGg6IDQwcHg7IGhlaWdodDo1cHggOyByaWdodDogMDsgdG9wOiAwOyBkaXNwbGF5OiBibG9jazsgbGVmdDogYXV0bzsgYmFja2dyb3VuZDogI2YwODUxOTtcclxuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbigwLjJzIGFsbCBlYXNlLW91dCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICY6aG92ZXIsJi5hY3RpdmV7XHJcbiAgICAgICAgICAgJjpiZWZvcmUge3dpZHRoOiAxMDBweDt9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5cclxuLyogZm9vdGVyXHJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG5cclxuZm9vdGVye1xyXG4gICAgaGVpZ2h0OiAxMTBweDsgd2lkdGg6IDEwMCU7IGJhY2tncm91bmQ6ICMwMDNkNzI7IEBpbmNsdWRlIGJveFNpemluZyhib3JkZXItYm94KTtcclxuICAgIC5ib3gtZm9vdHtcclxuICAgICAgICAgcGFkZGluZzogMzVweCAwIDA7IGZvbnQtc2l6ZTogMTNweDsgY29sb3I6ICNjOGM4Yzg7XHJcbiAgICAgICAgJjphZnRlcnsgY29udGVudDonJzsgY2xlYXI6IGJvdGg7IGRpc3BsYXk6IGJsb2NrOyB9XHJcbiAgICAgICAgLmFkZHJze1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OyB3aWR0aDogYXV0bzsgZmxvYXQ6IGxlZnQ7IG1hcmdpbi1yaWdodDogMTEwcHg7XHJcbiAgICAgICAgICAgIGxhYmVseyBmb250LXdlaWdodDogJGJvbGQ7IH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLmNvcHl7IFxyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IHdpZHRoOiBhdXRvOyBmbG9hdDogbGVmdDsgbWFyZ2luLXRvcDogMTBweDtcclxuICAgICAgICAgICAgYXsgXHJcbiAgICAgICAgICAgICAgICBjb2xvcjogI2ZmZjsgXHJcbiAgICAgICAgICAgICAgICAmOmhvdmVyeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5mcntcclxuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0OyBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gICAgICAgICAgICAudGVybXN7XHJcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IHdpZHRoOiBhdXRvOyBmbG9hdDogbGVmdDsgbWFyZ2luLXJpZ2h0OiAzMHB4OyBtYXJnaW4tdG9wOiA1cHg7XHJcbiAgICAgICAgICAgICAgICBheyBcclxuICAgICAgICAgICAgICAgICAgICBjb2xvcjogI2ZmZjsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZmZmOyBwYWRkaW5nLXJpZ2h0OjEwcHg7IG1hcmdpbi1yaWdodDogMTBweDtcclxuICAgICAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGR7IGJvcmRlci1yaWdodDpub25lOyBwYWRkaW5nLXJpZ2h0OiAwOyBtYXJnaW4tcmlnaHQ6IDA7IH1cclxuICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLm1lZHNvc3tcclxuICAgICAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgICAgICAgICAgICAgYXsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBtYXJnaW4tcmlnaHQ6IDJweDsgfVxyXG4gICAgICAgICAgICAgICAgLmljLXR3dHsgYmFja2dyb3VuZDogdXJsKCcuLi9pbWFnZXMvbWF0ZXJpYWwvaWMtdHd0LnBuZycpbm8tcmVwZWF0IGNlbnRlcjsgd2lkdGg6MjZweDsgaGVpZ2h0OiAyN3B4OyB9XHJcbiAgICAgICAgICAgICAgICAuaWMtZmJ7IGJhY2tncm91bmQ6IHVybCgnLi4vaW1hZ2VzL21hdGVyaWFsL2ljLWZiLnBuZycpbm8tcmVwZWF0IGNlbnRlcjt3aWR0aDoyNnB4OyBoZWlnaHQ6IDI3cHg7ICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5zbGljay1zbGlkZXtcclxuICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xyXG59XHJcblxyXG5cclxuLmxvYWRlci1wYWdle1xyXG4gICAgcG9zaXRpb246IGZpeGVkOyB3aWR0aDogMTAwJTtoZWlnaHQ6IDEwMCU7IHRvcDogMDsgei1pbmRleDogMTAwMDsgYmFja2dyb3VuZDojZmZmO1xyXG4gICAgLmJneyAgfVxyXG4gICAgLmxvZ29sb2FkeyBcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMDsgcmlnaHQ6IDA7IGxlZnQ6IDA7IGJvdHRvbTogMDsgd2lkdGg6IDMyNXB4OyBoZWlnaHQ6IDg5cHg7IG1hcmdpbjogYXV0bztcclxuICAgIH1cclxufSIsIi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHRcclxuICAgIENvbXBhbnkgICAgOiBQVCBXZWIgQXJjaGl0ZWN0IFRlY2hub2xvZ3kgLSB3ZWJhcnEuY29tXHJcbiAgICBEb2N1bWVudCAgIDogU3R5bGVzaGVldFxyXG4gICAgQXV0aG9yICAgICA6IEZyb250RW5kIFRlYW0gIFxyXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cclxuXHJcbi8qIGltcG9ydCBib3VyYm9uIC0gaHR0cDovL2JvdXJib24uaW8vZG9jcyAqL1xyXG5AaW1wb3J0IFwiYm91cmJvbi9ib3VyYm9uXCI7XHJcblxyXG5AbWl4aW4gdHJhbnNpdGlvbigkYXR0cil7XHJcbiAgICB0cmFuc2l0aW9uOiAkYXR0cjtcclxuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogJGF0dHI7XHJcbiAgICAtbW96LXRyYW5zaXRpb246ICRhdHRyO1xyXG4gICAgLW1zLXRyYW5zaXRpb246ICRhdHRyO1xyXG4gICAgLW8tdHJhbnNpdGlvbjogJGF0dHI7XHJcbn1cclxuQG1peGluIHRyYW5zZm9ybSgkYXR0cil7XHJcbiAgICB0cmFuc2Zvcm06ICRhdHRyO1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06ICRhdHRyO1xyXG4gICAgLW1vei10cmFuc2Zvcm06ICRhdHRyO1xyXG4gICAgLW1zLXRyYW5zZm9ybTogJGF0dHI7XHJcbiAgICAtby10cmFuc2Zvcm06ICRhdHRyO1xyXG59XHJcbkBtaXhpbiBib3JkZXJSYWRpdXMoJGF0dHIpe1xyXG4gICAgYm9yZGVyLXJhZGl1czogJGF0dHI7XHJcbiAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6ICRhdHRyO1xyXG4gICAgLW1vei1ib3JkZXItcmFkaXVzOiAkYXR0cjtcclxuICAgIC1tcy1ib3JkZXItcmFkaXVzOiAkYXR0cjtcclxuICAgIC1vLWJvcmRlci1yYWRpdXM6ICRhdHRyO1xyXG59XHJcbkBtaXhpbiBib3hTaGFkb3coJGF0dHIpe1xyXG4gICAgYm94LXNoYWRvdzogICRhdHRyO1xyXG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiAkYXR0cjtcclxuICAgIC1tb3otYm94LXNoYWRvdzogJGF0dHI7XHJcbiAgICAtbXMtYm94LXNoYWRvdzogJGF0dHI7XHJcbiAgICAtby1ib3gtc2hhZG93OiAkYXR0clxyXG59XHJcbkBtaXhpbiBib3hTaXppbmcoJGF0dHIpe1xyXG4gICAgYm94LXNpemluZzogICRhdHRyO1xyXG4gICAgLXdlYmtpdC1ib3gtc2l6aW5nOiAkYXR0cjtcclxuICAgIC1tb3otYm94LXNpemluZzogJGF0dHI7XHJcbiAgICAtbXMtYm94LXNpemluZzogJGF0dHI7XHJcbiAgICAtby1ib3gtc2l6aW5nOiAkYXR0clxyXG59XHJcbkBtaXhpbiBwbGFjZWhvbGRlciB7XHJcbiAgICA6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge0Bjb250ZW50fVxyXG4gICAgOi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAgIHtAY29udGVudH1cclxuICAgIDo6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICB7QGNvbnRlbnR9XHJcbiAgICA6LW1zLWlucHV0LXBsYWNlaG9sZGVyICAgICAge0Bjb250ZW50fSAgXHJcbn1cclxuQG1peGluIGJveFNpemluZygkYXR0cil7XHJcbiAgICAtd2Via2l0LWJveC1zaXppbmc6ICRhdHRyO1xyXG4gICAgLW1vei1ib3gtc2l6aW5nOiAkYXR0cjtcclxuICAgIGJveC1zaXppbmc6ICRhdHRyO1xyXG59XHJcblxyXG5cclxuLyogY29sb3IgZ2xvYmFsXHJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG4kY18xMTE6ICMxMTE7XHJcbiRjXzMzMzogIzMzMztcclxuJGNfNjY2OiAjNjY2O1xyXG4kY185OTk6ICM5OTk7XHJcbiRjX2VhOiAjZWFlYWVhO1xyXG5cclxuJGYtb3M6ICdPc3dhbGQnLCBzYW5zLXNlcmlmO1xyXG4kZi1tbzogJ01vbnRzZXJyYXQnLCBzYW5zLXNlcmlmO1xyXG4kZi1vcDogJ09wZW4gU2FucycsIHNhbnMtc2VyaWY7XHJcbiRmLWxhOiAnTGF0bycsIHNhbnMtc2VyaWY7XHJcblxyXG4kYm9sZDogNzAwO1xyXG4kcmVnOiA0MDA7IiwiLy8gQm91cmJvbiA0LjIuN1xyXG4vLyBodHRwOi8vYm91cmJvbi5pb1xyXG4vLyBDb3B5cmlnaHQgMjAxMS0yMDE1IHRob3VnaHRib3QsIGluYy5cclxuLy8gTUlUIExpY2Vuc2VcclxuXHJcbkBpbXBvcnQgXCJzZXR0aW5ncy9wcmVmaXhlclwiO1xyXG5AaW1wb3J0IFwic2V0dGluZ3MvcHgtdG8tZW1cIjtcclxuQGltcG9ydCBcInNldHRpbmdzL2Fzc2V0LXBpcGVsaW5lXCI7XHJcblxyXG5AaW1wb3J0IFwiZnVuY3Rpb25zL2Fzc2lnbi1pbnB1dHNcIjtcclxuQGltcG9ydCBcImZ1bmN0aW9ucy9jb250YWluc1wiO1xyXG5AaW1wb3J0IFwiZnVuY3Rpb25zL2NvbnRhaW5zLWZhbHN5XCI7XHJcbkBpbXBvcnQgXCJmdW5jdGlvbnMvaXMtbGVuZ3RoXCI7XHJcbkBpbXBvcnQgXCJmdW5jdGlvbnMvaXMtbGlnaHRcIjtcclxuQGltcG9ydCBcImZ1bmN0aW9ucy9pcy1udW1iZXJcIjtcclxuQGltcG9ydCBcImZ1bmN0aW9ucy9pcy1zaXplXCI7XHJcbkBpbXBvcnQgXCJmdW5jdGlvbnMvcHgtdG8tZW1cIjtcclxuQGltcG9ydCBcImZ1bmN0aW9ucy9weC10by1yZW1cIjtcclxuQGltcG9ydCBcImZ1bmN0aW9ucy9zaGFkZVwiO1xyXG5AaW1wb3J0IFwiZnVuY3Rpb25zL3N0cmlwLXVuaXRzXCI7XHJcbkBpbXBvcnQgXCJmdW5jdGlvbnMvdGludFwiO1xyXG5AaW1wb3J0IFwiZnVuY3Rpb25zL3RyYW5zaXRpb24tcHJvcGVydHktbmFtZVwiO1xyXG5AaW1wb3J0IFwiZnVuY3Rpb25zL3VucGFja1wiO1xyXG5AaW1wb3J0IFwiZnVuY3Rpb25zL21vZHVsYXItc2NhbGVcIjtcclxuXHJcbkBpbXBvcnQgXCJoZWxwZXJzL2NvbnZlcnQtdW5pdHNcIjtcclxuQGltcG9ydCBcImhlbHBlcnMvZGlyZWN0aW9uYWwtdmFsdWVzXCI7XHJcbkBpbXBvcnQgXCJoZWxwZXJzL2ZvbnQtc291cmNlLWRlY2xhcmF0aW9uXCI7XHJcbkBpbXBvcnQgXCJoZWxwZXJzL2dyYWRpZW50LXBvc2l0aW9ucy1wYXJzZXJcIjtcclxuQGltcG9ydCBcImhlbHBlcnMvbGluZWFyLWFuZ2xlLXBhcnNlclwiO1xyXG5AaW1wb3J0IFwiaGVscGVycy9saW5lYXItZ3JhZGllbnQtcGFyc2VyXCI7XHJcbkBpbXBvcnQgXCJoZWxwZXJzL2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyXCI7XHJcbkBpbXBvcnQgXCJoZWxwZXJzL2xpbmVhci1zaWRlLWNvcm5lci1wYXJzZXJcIjtcclxuQGltcG9ydCBcImhlbHBlcnMvcmFkaWFsLWFyZy1wYXJzZXJcIjtcclxuQGltcG9ydCBcImhlbHBlcnMvcmFkaWFsLXBvc2l0aW9ucy1wYXJzZXJcIjtcclxuQGltcG9ydCBcImhlbHBlcnMvcmFkaWFsLWdyYWRpZW50LXBhcnNlclwiO1xyXG5AaW1wb3J0IFwiaGVscGVycy9yZW5kZXItZ3JhZGllbnRzXCI7XHJcbkBpbXBvcnQgXCJoZWxwZXJzL3NoYXBlLXNpemUtc3RyaXBwZXJcIjtcclxuQGltcG9ydCBcImhlbHBlcnMvc3RyLXRvLW51bVwiO1xyXG5cclxuQGltcG9ydCBcImNzczMvYW5pbWF0aW9uXCI7XHJcbkBpbXBvcnQgXCJjc3MzL2FwcGVhcmFuY2VcIjtcclxuQGltcG9ydCBcImNzczMvYmFja2ZhY2UtdmlzaWJpbGl0eVwiO1xyXG5AaW1wb3J0IFwiY3NzMy9iYWNrZ3JvdW5kXCI7XHJcbkBpbXBvcnQgXCJjc3MzL2JhY2tncm91bmQtaW1hZ2VcIjtcclxuQGltcG9ydCBcImNzczMvYm9yZGVyLWltYWdlXCI7XHJcbkBpbXBvcnQgXCJjc3MzL2NhbGNcIjtcclxuQGltcG9ydCBcImNzczMvY29sdW1uc1wiO1xyXG5AaW1wb3J0IFwiY3NzMy9maWx0ZXJcIjtcclxuQGltcG9ydCBcImNzczMvZmxleC1ib3hcIjtcclxuQGltcG9ydCBcImNzczMvZm9udC1mYWNlXCI7XHJcbkBpbXBvcnQgXCJjc3MzL2ZvbnQtZmVhdHVyZS1zZXR0aW5nc1wiO1xyXG5AaW1wb3J0IFwiY3NzMy9oaWRwaS1tZWRpYS1xdWVyeVwiO1xyXG5AaW1wb3J0IFwiY3NzMy9oeXBoZW5zXCI7XHJcbkBpbXBvcnQgXCJjc3MzL2ltYWdlLXJlbmRlcmluZ1wiO1xyXG5AaW1wb3J0IFwiY3NzMy9rZXlmcmFtZXNcIjtcclxuQGltcG9ydCBcImNzczMvbGluZWFyLWdyYWRpZW50XCI7XHJcbkBpbXBvcnQgXCJjc3MzL3BlcnNwZWN0aXZlXCI7XHJcbkBpbXBvcnQgXCJjc3MzL3BsYWNlaG9sZGVyXCI7XHJcbkBpbXBvcnQgXCJjc3MzL3JhZGlhbC1ncmFkaWVudFwiO1xyXG5AaW1wb3J0IFwiY3NzMy9zZWxlY3Rpb25cIjtcclxuQGltcG9ydCBcImNzczMvdGV4dC1kZWNvcmF0aW9uXCI7XHJcbkBpbXBvcnQgXCJjc3MzL3RyYW5zZm9ybVwiO1xyXG5AaW1wb3J0IFwiY3NzMy90cmFuc2l0aW9uXCI7XHJcbkBpbXBvcnQgXCJjc3MzL3VzZXItc2VsZWN0XCI7XHJcblxyXG5AaW1wb3J0IFwiYWRkb25zL2JvcmRlci1jb2xvclwiO1xyXG5AaW1wb3J0IFwiYWRkb25zL2JvcmRlci1yYWRpdXNcIjtcclxuQGltcG9ydCBcImFkZG9ucy9ib3JkZXItc3R5bGVcIjtcclxuQGltcG9ydCBcImFkZG9ucy9ib3JkZXItd2lkdGhcIjtcclxuQGltcG9ydCBcImFkZG9ucy9idXR0b25zXCI7XHJcbkBpbXBvcnQgXCJhZGRvbnMvY2xlYXJmaXhcIjtcclxuQGltcG9ydCBcImFkZG9ucy9lbGxpcHNpc1wiO1xyXG5AaW1wb3J0IFwiYWRkb25zL2ZvbnQtc3RhY2tzXCI7XHJcbkBpbXBvcnQgXCJhZGRvbnMvaGlkZS10ZXh0XCI7XHJcbkBpbXBvcnQgXCJhZGRvbnMvbWFyZ2luXCI7XHJcbkBpbXBvcnQgXCJhZGRvbnMvcGFkZGluZ1wiO1xyXG5AaW1wb3J0IFwiYWRkb25zL3Bvc2l0aW9uXCI7XHJcbkBpbXBvcnQgXCJhZGRvbnMvcHJlZml4ZXJcIjtcclxuQGltcG9ydCBcImFkZG9ucy9yZXRpbmEtaW1hZ2VcIjtcclxuQGltcG9ydCBcImFkZG9ucy9zaXplXCI7XHJcbkBpbXBvcnQgXCJhZGRvbnMvdGV4dC1pbnB1dHNcIjtcclxuQGltcG9ydCBcImFkZG9ucy90aW1pbmctZnVuY3Rpb25zXCI7XHJcbkBpbXBvcnQgXCJhZGRvbnMvdHJpYW5nbGVcIjtcclxuQGltcG9ydCBcImFkZG9ucy93b3JkLXdyYXBcIjtcclxuXHJcbkBpbXBvcnQgXCJib3VyYm9uLWRlcHJlY2F0ZWQtdXBjb21pbmdcIjtcclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIEdsb2JhbCB2YXJpYWJsZXMgdG8gZW5hYmxlIG9yIGRpc2FibGUgdmVuZG9yIHByZWZpeGVzXHJcblxyXG4kcHJlZml4LWZvci13ZWJraXQ6ICAgIHRydWUgIWRlZmF1bHQ7XHJcbiRwcmVmaXgtZm9yLW1vemlsbGE6ICAgdHJ1ZSAhZGVmYXVsdDtcclxuJHByZWZpeC1mb3ItbWljcm9zb2Z0OiB0cnVlICFkZWZhdWx0O1xyXG4kcHJlZml4LWZvci1vcGVyYTogICAgIHRydWUgIWRlZmF1bHQ7XHJcbiRwcmVmaXgtZm9yLXNwZWM6ICAgICAgdHJ1ZSAhZGVmYXVsdDtcclxuIiwiJGVtLWJhc2U6IDE2cHggIWRlZmF1bHQ7XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBBIGdsb2JhbCBzZXR0aW5nIHRvIGVuYWJsZSBvciBkaXNhYmxlIHRoZSBgJGFzc2V0LXBpcGVsaW5lYCB2YXJpYWJsZSBmb3IgYWxsIGZ1bmN0aW9ucyB0aGF0IGFjY2VwdCBpdC5cclxuLy8vXHJcbi8vLyBAdHlwZSBCb29sXHJcblxyXG4kYXNzZXQtcGlwZWxpbmU6IGZhbHNlICFkZWZhdWx0O1xyXG4iLCJAZnVuY3Rpb24gYXNzaWduLWlucHV0cygkaW5wdXRzLCAkcHNldWRvOiBudWxsKSB7XHJcbiAgJGxpc3Q6ICgpO1xyXG5cclxuICBAZWFjaCAkaW5wdXQgaW4gJGlucHV0cyB7XHJcbiAgICAkaW5wdXQ6IHVucXVvdGUoJGlucHV0KTtcclxuICAgICRpbnB1dDogaWYoJHBzZXVkbywgJGlucHV0ICsgXCI6XCIgKyAkcHNldWRvLCAkaW5wdXQpO1xyXG4gICAgJGxpc3Q6IGFwcGVuZCgkbGlzdCwgJGlucHV0LCBjb21tYSk7XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuICRsaXN0O1xyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBDaGVja3MgaWYgYSBsaXN0IGNvbnRhaW5zIGEgdmFsdWUocykuXHJcbi8vL1xyXG4vLy8gQGFjY2VzcyBwcml2YXRlXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtMaXN0fSAkbGlzdFxyXG4vLy8gICBUaGUgbGlzdCB0byBjaGVjayBhZ2FpbnN0LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TGlzdH0gJHZhbHVlc1xyXG4vLy8gICBBIHNpbmdsZSB2YWx1ZSBvciBsaXN0IG9mIHZhbHVlcyB0byBjaGVjayBmb3IuXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIGNvbnRhaW5zKCRsaXN0LCAkdmFsdWUpXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7Qm9vbH1cclxuXHJcbkBmdW5jdGlvbiBjb250YWlucygkbGlzdCwgJHZhbHVlcy4uLikge1xyXG4gIEBlYWNoICR2YWx1ZSBpbiAkdmFsdWVzIHtcclxuICAgIEBpZiB0eXBlLW9mKGluZGV4KCRsaXN0LCAkdmFsdWUpKSAhPSBcIm51bWJlclwiIHtcclxuICAgICAgQHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEByZXR1cm4gdHJ1ZTtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gQ2hlY2tzIGlmIGEgbGlzdCBkb2VzIG5vdCBjb250YWlucyBhIHZhbHVlLlxyXG4vLy9cclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TGlzdH0gJGxpc3RcclxuLy8vICAgVGhlIGxpc3QgdG8gY2hlY2sgYWdhaW5zdC5cclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtCb29sfVxyXG5cclxuQGZ1bmN0aW9uIGNvbnRhaW5zLWZhbHN5KCRsaXN0KSB7XHJcbiAgQGVhY2ggJGl0ZW0gaW4gJGxpc3Qge1xyXG4gICAgQGlmIG5vdCAkaXRlbSB7XHJcbiAgICAgIEByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEByZXR1cm4gZmFsc2U7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIENoZWNrcyBmb3IgYSB2YWxpZCBDU1MgbGVuZ3RoLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkdmFsdWVcclxuXHJcbkBmdW5jdGlvbiBpcy1sZW5ndGgoJHZhbHVlKSB7XHJcbiAgQHJldHVybiB0eXBlLW9mKCR2YWx1ZSkgIT0gXCJudWxsXCIgYW5kIChzdHItc2xpY2UoJHZhbHVlICsgXCJcIiwgMSwgNCkgPT0gXCJjYWxjXCJcclxuICAgICAgIG9yIGluZGV4KGF1dG8gaW5oZXJpdCBpbml0aWFsIDAsICR2YWx1ZSlcclxuICAgICAgIG9yICh0eXBlLW9mKCR2YWx1ZSkgPT0gXCJudW1iZXJcIiBhbmQgbm90KHVuaXRsZXNzKCR2YWx1ZSkpKSk7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIFByb2dyYW1hdGljYWxseSBkZXRlcm1pbmVzIHdoZXRoZXIgYSBjb2xvciBpcyBsaWdodCBvciBkYXJrLlxyXG4vLy9cclxuLy8vIEBsaW5rIGh0dHA6Ly9yb2JvdHMudGhvdWdodGJvdC5jb20vY2xvc2VyLWxvb2stY29sb3ItbGlnaHRuZXNzXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtDb2xvciAoSGV4KX0gJGNvbG9yXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIGlzLWxpZ2h0KCRjb2xvcilcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtCb29sfVxyXG5cclxuQGZ1bmN0aW9uIGlzLWxpZ2h0KCRoZXgtY29sb3IpIHtcclxuICAkLWxvY2FsLXJlZDogcmVkKHJnYmEoJGhleC1jb2xvciwgMSkpO1xyXG4gICQtbG9jYWwtZ3JlZW46IGdyZWVuKHJnYmEoJGhleC1jb2xvciwgMSkpO1xyXG4gICQtbG9jYWwtYmx1ZTogYmx1ZShyZ2JhKCRoZXgtY29sb3IsIDEpKTtcclxuICAkLWxvY2FsLWxpZ2h0bmVzczogKCQtbG9jYWwtcmVkICogMC4yMTI2ICsgJC1sb2NhbC1ncmVlbiAqIDAuNzE1MiArICQtbG9jYWwtYmx1ZSAqIDAuMDcyMikgLyAyNTU7XHJcblxyXG4gIEByZXR1cm4gJC1sb2NhbC1saWdodG5lc3MgPiAwLjY7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIENoZWNrcyBmb3IgYSB2YWxpZCBudW1iZXIuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZVxyXG4vLy9cclxuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gY29udGFpbnNcclxuXHJcbkBmdW5jdGlvbiBpcy1udW1iZXIoJHZhbHVlKSB7XHJcbiAgQHJldHVybiBjb250YWlucyhcIjBcIiBcIjFcIiBcIjJcIiBcIjNcIiBcIjRcIiBcIjVcIiBcIjZcIiBcIjdcIiBcIjhcIiBcIjlcIiAwIDEgMiAzIDQgNSA2IDcgOCA5LCAkdmFsdWUpO1xyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBDaGVja3MgZm9yIGEgdmFsaWQgQ1NTIHNpemUuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR2YWx1ZVxyXG4vLy9cclxuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gY29udGFpbnNcclxuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gaXMtbGVuZ3RoXHJcblxyXG5AZnVuY3Rpb24gaXMtc2l6ZSgkdmFsdWUpIHtcclxuICBAcmV0dXJuIGlzLWxlbmd0aCgkdmFsdWUpXHJcbiAgICAgICAgICBvciBjb250YWlucyhcImZpbGxcIiBcImZpdC1jb250ZW50XCIgXCJtaW4tY29udGVudFwiIFwibWF4LWNvbnRlbnRcIiwgJHZhbHVlKTtcclxufVxyXG4iLCIvLyBDb252ZXJ0IHBpeGVscyB0byBlbXNcclxuLy8gZWcuIGZvciBhIHJlbGF0aW9uYWwgdmFsdWUgb2YgMTJweCB3cml0ZSBlbSgxMikgd2hlbiB0aGUgcGFyZW50IGlzIDE2cHhcclxuLy8gaWYgdGhlIHBhcmVudCBpcyBhbm90aGVyIHZhbHVlIHNheSAyNHB4IHdyaXRlIGVtKDEyLCAyNClcclxuXHJcbkBmdW5jdGlvbiBlbSgkcHh2YWwsICRiYXNlOiAkZW0tYmFzZSkge1xyXG4gIEBpZiBub3QgdW5pdGxlc3MoJHB4dmFsKSB7XHJcbiAgICAkcHh2YWw6IHN0cmlwLXVuaXRzKCRweHZhbCk7XHJcbiAgfVxyXG4gIEBpZiBub3QgdW5pdGxlc3MoJGJhc2UpIHtcclxuICAgICRiYXNlOiBzdHJpcC11bml0cygkYmFzZSk7XHJcbiAgfVxyXG4gIEByZXR1cm4gKCRweHZhbCAvICRiYXNlKSAqIDFlbTtcclxufVxyXG4iLCIvLyBDb252ZXJ0IHBpeGVscyB0byByZW1zXHJcbi8vIGVnLiBmb3IgYSByZWxhdGlvbmFsIHZhbHVlIG9mIDEycHggd3JpdGUgcmVtKDEyKVxyXG4vLyBBc3N1bWVzICRlbS1iYXNlIGlzIHRoZSBmb250LXNpemUgb2YgPGh0bWw+XHJcblxyXG5AZnVuY3Rpb24gcmVtKCRweHZhbCkge1xyXG4gIEBpZiBub3QgdW5pdGxlc3MoJHB4dmFsKSB7XHJcbiAgICAkcHh2YWw6IHN0cmlwLXVuaXRzKCRweHZhbCk7XHJcbiAgfVxyXG5cclxuICAkYmFzZTogJGVtLWJhc2U7XHJcbiAgQGlmIG5vdCB1bml0bGVzcygkYmFzZSkge1xyXG4gICAgJGJhc2U6IHN0cmlwLXVuaXRzKCRiYXNlKTtcclxuICB9XHJcbiAgQHJldHVybiAoJHB4dmFsIC8gJGJhc2UpICogMXJlbTtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gTWl4ZXMgYSBjb2xvciB3aXRoIGJsYWNrLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvclxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TnVtYmVyIChQZXJjZW50YWdlKX0gJHBlcmNlbnRcclxuLy8vICAgVGhlIGFtb3VudCBvZiBibGFjayB0byBiZSBtaXhlZCBpbi5cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6IHNoYWRlKCNmZmJiNTIsIDYwJSk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjY0YTIwO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQHJldHVybiB7Q29sb3J9XHJcblxyXG5AZnVuY3Rpb24gc2hhZGUoJGNvbG9yLCAkcGVyY2VudCkge1xyXG4gIEByZXR1cm4gbWl4KCMwMDAsICRjb2xvciwgJHBlcmNlbnQpO1xyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBTdHJpcHMgdGhlIHVuaXQgZnJvbSBhIG51bWJlci5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge051bWJlciAoV2l0aCBVbml0KX0gJHZhbHVlXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgICRkaW1lbnNpb246IHN0cmlwLXVuaXRzKDEwZW0pO1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgJGRpbWVuc2lvbjogMTA7XHJcbi8vL1xyXG4vLy8gQHJldHVybiB7TnVtYmVyIChVbml0bGVzcyl9XHJcblxyXG5AZnVuY3Rpb24gc3RyaXAtdW5pdHMoJHZhbHVlKSB7XHJcbiAgQHJldHVybiAoJHZhbHVlIC8gKCR2YWx1ZSAqIDAgKyAxKSk7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIE1peGVzIGEgY29sb3Igd2l0aCB3aGl0ZS5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3JcclxuLy8vXHJcbi8vLyBAcGFyYW0ge051bWJlciAoUGVyY2VudGFnZSl9ICRwZXJjZW50XHJcbi8vLyAgIFRoZSBhbW91bnQgb2Ygd2hpdGUgdG8gYmUgbWl4ZWQgaW4uXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aW50KCM2ZWNhYTYsIDQwJSk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYThkZmM5O1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQHJldHVybiB7Q29sb3J9XHJcblxyXG5AZnVuY3Rpb24gdGludCgkY29sb3IsICRwZXJjZW50KSB7XHJcbiAgQHJldHVybiBtaXgoI2ZmZiwgJGNvbG9yLCAkcGVyY2VudCk7XHJcbn1cclxuIiwiLy8gUmV0dXJuIHZlbmRvci1wcmVmaXhlZCBwcm9wZXJ0eSBuYW1lcyBpZiBhcHByb3ByaWF0ZVxyXG4vLyBFeGFtcGxlOiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCh0cmFuc2Zvcm0sIGNvbG9yLCBiYWNrZ3JvdW5kKSwgbW96KSAtPiAtbW96LXRyYW5zZm9ybSwgY29sb3IsIGJhY2tncm91bmRcclxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xyXG5AZnVuY3Rpb24gdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcHMsICR2ZW5kb3I6IGZhbHNlKSB7XHJcbiAgJG5ldy1wcm9wczogKCk7XHJcblxyXG4gIEBlYWNoICRwcm9wIGluICRwcm9wcyB7XHJcbiAgICAkbmV3LXByb3BzOiBhcHBlbmQoJG5ldy1wcm9wcywgdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lKCRwcm9wLCAkdmVuZG9yKSwgY29tbWEpO1xyXG4gIH1cclxuXHJcbiAgQHJldHVybiAkbmV3LXByb3BzO1xyXG59XHJcblxyXG5AZnVuY3Rpb24gdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lKCRwcm9wLCAkdmVuZG9yOiBmYWxzZSkge1xyXG4gIC8vIHB1dCBvdGhlciBwcm9wZXJ0aWVzIHRoYXQgbmVlZCB0byBiZSBwcmVmaXhlZCBoZXJlIGFzd2VsbFxyXG4gIEBpZiAkdmVuZG9yIGFuZCAkcHJvcCA9PSB0cmFuc2Zvcm0ge1xyXG4gICAgQHJldHVybiB1bnF1b3RlKCctJyskdmVuZG9yKyctJyskcHJvcCk7XHJcbiAgfVxyXG4gIEBlbHNlIHtcclxuICAgIEByZXR1cm4gJHByb3A7XHJcbiAgfVxyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBDb252ZXJ0cyBzaG9ydGhhbmQgdG8gdGhlIDQtdmFsdWUgc3ludGF4LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TGlzdH0gJHNob3J0aGFuZFxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgbWFyZ2luOiB1bnBhY2soMWVtIDJlbSk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBtYXJnaW46IDFlbSAyZW0gMWVtIDJlbTtcclxuLy8vICAgfVxyXG5cclxuQGZ1bmN0aW9uIHVucGFjaygkc2hvcnRoYW5kKSB7XHJcbiAgQGlmIGxlbmd0aCgkc2hvcnRoYW5kKSA9PSAxIHtcclxuICAgIEByZXR1cm4gbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDEpO1xyXG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCRzaG9ydGhhbmQpID09IDIge1xyXG4gICAgQHJldHVybiBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDIpIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMik7XHJcbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHNob3J0aGFuZCkgPT0gMyB7XHJcbiAgICBAcmV0dXJuIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMikgbnRoKCRzaG9ydGhhbmQsIDMpIG50aCgkc2hvcnRoYW5kLCAyKTtcclxuICB9IEBlbHNlIHtcclxuICAgIEByZXR1cm4gJHNob3J0aGFuZDtcclxuICB9XHJcbn1cclxuIiwiLy8gU2NhbGluZyBWYXJpYWJsZXNcclxuJGdvbGRlbjogICAgICAgICAgIDEuNjE4O1xyXG4kbWlub3Itc2Vjb25kOiAgICAgMS4wNjc7XHJcbiRtYWpvci1zZWNvbmQ6ICAgICAxLjEyNTtcclxuJG1pbm9yLXRoaXJkOiAgICAgIDEuMjtcclxuJG1ham9yLXRoaXJkOiAgICAgIDEuMjU7XHJcbiRwZXJmZWN0LWZvdXJ0aDogICAxLjMzMztcclxuJGF1Z21lbnRlZC1mb3VydGg6IDEuNDE0O1xyXG4kcGVyZmVjdC1maWZ0aDogICAgMS41O1xyXG4kbWlub3Itc2l4dGg6ICAgICAgMS42O1xyXG4kbWFqb3Itc2l4dGg6ICAgICAgMS42Njc7XHJcbiRtaW5vci1zZXZlbnRoOiAgICAxLjc3ODtcclxuJG1ham9yLXNldmVudGg6ICAgIDEuODc1O1xyXG4kb2N0YXZlOiAgICAgICAgICAgMjtcclxuJG1ham9yLXRlbnRoOiAgICAgIDIuNTtcclxuJG1ham9yLWVsZXZlbnRoOiAgIDIuNjY3O1xyXG4kbWFqb3ItdHdlbGZ0aDogICAgMztcclxuJGRvdWJsZS1vY3RhdmU6ICAgIDQ7XHJcblxyXG4kbW9kdWxhci1zY2FsZS1yYXRpbzogJHBlcmZlY3QtZm91cnRoICFkZWZhdWx0O1xyXG4kbW9kdWxhci1zY2FsZS1iYXNlOiBlbSgkZW0tYmFzZSkgIWRlZmF1bHQ7XHJcblxyXG5AZnVuY3Rpb24gbW9kdWxhci1zY2FsZSgkaW5jcmVtZW50LCAkdmFsdWU6ICRtb2R1bGFyLXNjYWxlLWJhc2UsICRyYXRpbzogJG1vZHVsYXItc2NhbGUtcmF0aW8pIHtcclxuICAkdjE6IG50aCgkdmFsdWUsIDEpO1xyXG4gICR2MjogbnRoKCR2YWx1ZSwgbGVuZ3RoKCR2YWx1ZSkpO1xyXG4gICR2YWx1ZTogJHYxO1xyXG5cclxuICAvLyBzY2FsZSAkdjIgdG8ganVzdCBhYm92ZSAkdjFcclxuICBAd2hpbGUgJHYyID4gJHYxIHtcclxuICAgICR2MjogKCR2MiAvICRyYXRpbyk7IC8vIHdpbGwgYmUgb2ZmLWJ5LTFcclxuICB9XHJcbiAgQHdoaWxlICR2MiA8ICR2MSB7XHJcbiAgICAkdjI6ICgkdjIgKiAkcmF0aW8pOyAvLyB3aWxsIGZpeCBvZmYtYnktMVxyXG4gIH1cclxuXHJcbiAgLy8gY2hlY2sgQUZURVIgc2NhbGluZyAkdjIgdG8gcHJldmVudCBkb3VibGUtY291bnRpbmcgY29ybmVyLWNhc2VcclxuICAkZG91YmxlLXN0cmFuZGVkOiAkdjIgPiAkdjE7XHJcblxyXG4gIEBpZiAkaW5jcmVtZW50ID4gMCB7XHJcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRpbmNyZW1lbnQge1xyXG4gICAgICBAaWYgJGRvdWJsZS1zdHJhbmRlZCBhbmQgKCR2MSAqICRyYXRpbykgPiAkdjIge1xyXG4gICAgICAgICR2YWx1ZTogJHYyO1xyXG4gICAgICAgICR2MjogKCR2MiAqICRyYXRpbyk7XHJcbiAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICR2MTogKCR2MSAqICRyYXRpbyk7XHJcbiAgICAgICAgJHZhbHVlOiAkdjE7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBpZiAkaW5jcmVtZW50IDwgMCB7XHJcbiAgICAvLyBhZGp1c3QgJHYyIHRvIGp1c3QgYmVsb3cgJHYxXHJcbiAgICBAaWYgJGRvdWJsZS1zdHJhbmRlZCB7XHJcbiAgICAgICR2MjogKCR2MiAvICRyYXRpbyk7XHJcbiAgICB9XHJcblxyXG4gICAgQGZvciAkaSBmcm9tICRpbmNyZW1lbnQgdGhyb3VnaCAtMSB7XHJcbiAgICAgIEBpZiAkZG91YmxlLXN0cmFuZGVkIGFuZCAoJHYxIC8gJHJhdGlvKSA8ICR2MiB7XHJcbiAgICAgICAgJHZhbHVlOiAkdjI7XHJcbiAgICAgICAgJHYyOiAoJHYyIC8gJHJhdGlvKTtcclxuICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgJHYxOiAoJHYxIC8gJHJhdGlvKTtcclxuICAgICAgICAkdmFsdWU6ICR2MTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQHJldHVybiAkdmFsdWU7XHJcbn1cclxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xyXG4vLyBIZWxwZXIgZnVuY3Rpb24gZm9yIHN0ci10by1udW0gZm4uXHJcbi8vIFNvdXJjZTogaHR0cDovL3Nhc3NtZWlzdGVyLmNvbS9naXN0Lzk2NDc0MDhcclxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xyXG5AZnVuY3Rpb24gX2NvbnZlcnQtdW5pdHMoJG51bWJlciwgJHVuaXQpIHtcclxuICAkc3RyaW5nczogXCJweFwiLCBcImNtXCIsIFwibW1cIiwgXCIlXCIsIFwiY2hcIiwgXCJwaWNhXCIsIFwiaW5cIiwgXCJlbVwiLCBcInJlbVwiLCBcInB0XCIsIFwicGNcIiwgXCJleFwiLCBcInZ3XCIsIFwidmhcIiwgXCJ2bWluXCIsIFwidm1heFwiLCBcImRlZ1wiLCBcInJhZFwiLCBcImdyYWRcIiwgXCJ0dXJuXCI7XHJcbiAgJHVuaXRzOiAgIDFweCwgMWNtLCAxbW0sIDElLCAxY2gsIDFwaWNhLCAxaW4sIDFlbSwgMXJlbSwgMXB0LCAxcGMsIDFleCwgMXZ3LCAxdmgsIDF2bWluLCAxdm1heCwgMWRlZywgMXJhZCwgMWdyYWQsIDF0dXJuO1xyXG4gICRpbmRleDogaW5kZXgoJHN0cmluZ3MsICR1bml0KTtcclxuXHJcbiAgQGlmIG5vdCAkaW5kZXgge1xyXG4gICAgQHdhcm4gXCJVbmtub3duIHVuaXQgYCN7JHVuaXR9YC5cIjtcclxuICAgIEByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBAaWYgdHlwZS1vZigkbnVtYmVyKSAhPSBcIm51bWJlclwiIHtcclxuICAgIEB3YXJuIFwiYCN7JG51bWJlcn0gaXMgbm90IGEgbnVtYmVyYFwiO1xyXG4gICAgQHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIEByZXR1cm4gJG51bWJlciAqIG50aCgkdW5pdHMsICRpbmRleCk7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIERpcmVjdGlvbmFsLXByb3BlcnR5IG1peGlucyBhcmUgc2hvcnRoYW5kcyBmb3Igd3JpdGluZyBwcm9wZXJ0aWVzIGxpa2UgdGhlIGZvbGxvd2luZ1xyXG4vLy9cclxuLy8vIEBpZ25vcmUgWW91IGNhbiBhbHNvIHVzZSBgZmFsc2VgIGluc3RlYWQgb2YgYG51bGxgLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TGlzdH0gJHZhbHNcclxuLy8vICAgTGlzdCBvZiBkaXJlY3Rpb25hbCB2YWx1ZXNcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci1zdHlsZShkb3R0ZWQgbnVsbCk7XHJcbi8vLyAgICAgQGluY2x1ZGUgbWFyZ2luKG51bGwgMCAxMHB4KTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IGRvdHRlZDtcclxuLy8vICAgICBib3JkZXItdG9wLXN0eWxlOiBkb3R0ZWQ7XHJcbi8vLyAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuLy8vICAgICBtYXJnaW4tbGVmdDogMDtcclxuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDA7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbnRhaW5zLWZhbHN5XHJcbi8vL1xyXG4vLy8gQHJldHVybiB7TGlzdH1cclxuXHJcbkBmdW5jdGlvbiBjb2xsYXBzZS1kaXJlY3Rpb25hbHMoJHZhbHMpIHtcclxuICAkb3V0cHV0OiBudWxsO1xyXG5cclxuICAkYTogbnRoKCR2YWxzLCAxKTtcclxuICAkYjogaWYobGVuZ3RoKCR2YWxzKSA8IDIsICRhLCBudGgoJHZhbHMsIDIpKTtcclxuICAkYzogaWYobGVuZ3RoKCR2YWxzKSA8IDMsICRhLCBudGgoJHZhbHMsIDMpKTtcclxuICAkZDogaWYobGVuZ3RoKCR2YWxzKSA8IDIsICRhLCBudGgoJHZhbHMsIGlmKGxlbmd0aCgkdmFscykgPCA0LCAyLCA0KSkpO1xyXG5cclxuICBAaWYgJGEgPT0gMCB7ICRhOiAwOyB9XHJcbiAgQGlmICRiID09IDAgeyAkYjogMDsgfVxyXG4gIEBpZiAkYyA9PSAwIHsgJGM6IDA7IH1cclxuICBAaWYgJGQgPT0gMCB7ICRkOiAwOyB9XHJcblxyXG4gIEBpZiAkYSA9PSAkYiBhbmQgJGEgPT0gJGMgYW5kICRhID09ICRkIHsgJG91dHB1dDogJGE7ICAgICAgICAgIH1cclxuICBAZWxzZSBpZiAkYSA9PSAkYyBhbmQgJGIgPT0gJGQgICAgICAgICB7ICRvdXRwdXQ6ICRhICRiOyAgICAgICB9XHJcbiAgQGVsc2UgaWYgJGIgPT0gJGQgICAgICAgICAgICAgICAgICAgICAgeyAkb3V0cHV0OiAkYSAkYiAkYzsgICAgfVxyXG4gIEBlbHNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJG91dHB1dDogJGEgJGIgJGMgJGQ7IH1cclxuXHJcbiAgQHJldHVybiAkb3V0cHV0O1xyXG59XHJcblxyXG4vLy8gT3V0cHV0IGRpcmVjdGlvbmFsIHByb3BlcnRpZXMsIGZvciBpbnN0YW5jZSBgbWFyZ2luYC5cclxuLy8vXHJcbi8vLyBAYWNjZXNzIHByaXZhdGVcclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHByZVxyXG4vLy8gICBQcmVmaXggdG8gdXNlXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHN1ZlxyXG4vLy8gICBTdWZmaXggdG8gdXNlXHJcbi8vLyBAcGFyYW0ge0xpc3R9ICR2YWxzXHJcbi8vLyAgIExpc3Qgb2YgdmFsdWVzXHJcbi8vL1xyXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb2xsYXBzZS1kaXJlY3Rpb25hbHNcclxuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gY29udGFpbnMtZmFsc3lcclxuXHJcbkBtaXhpbiBkaXJlY3Rpb25hbC1wcm9wZXJ0eSgkcHJlLCAkc3VmLCAkdmFscykge1xyXG4gIC8vIFByb3BlcnR5IE5hbWVzXHJcbiAgJHRvcDogICAgJHByZSArIFwiLXRvcFwiICAgICsgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcclxuICAkYm90dG9tOiAkcHJlICsgXCItYm90dG9tXCIgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xyXG4gICRsZWZ0OiAgICRwcmUgKyBcIi1sZWZ0XCIgICArIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XHJcbiAgJHJpZ2h0OiAgJHByZSArIFwiLXJpZ2h0XCIgICsgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcclxuICAkYWxsOiAgICAkcHJlICsgICAgICAgICAgICAgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcclxuXHJcbiAgJHZhbHM6IGNvbGxhcHNlLWRpcmVjdGlvbmFscygkdmFscyk7XHJcblxyXG4gIEBpZiBjb250YWlucy1mYWxzeSgkdmFscykge1xyXG4gICAgQGlmIG50aCgkdmFscywgMSkgeyAjeyR0b3B9OiBudGgoJHZhbHMsIDEpOyB9XHJcblxyXG4gICAgQGlmIGxlbmd0aCgkdmFscykgPT0gMSB7XHJcbiAgICAgIEBpZiBudGgoJHZhbHMsIDEpIHsgI3skcmlnaHR9OiBudGgoJHZhbHMsIDEpOyB9XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgQGlmIG50aCgkdmFscywgMikgeyAjeyRyaWdodH06IG50aCgkdmFscywgMik7IH1cclxuICAgIH1cclxuXHJcbiAgICBAaWYgbGVuZ3RoKCR2YWxzKSA9PSAyIHtcclxuICAgICAgQGlmIG50aCgkdmFscywgMSkgeyAjeyRib3R0b219OiBudGgoJHZhbHMsIDEpOyB9XHJcbiAgICAgIEBpZiBudGgoJHZhbHMsIDIpIHsgI3skbGVmdH06ICAgbnRoKCR2YWxzLCAyKTsgfVxyXG4gICAgfSBAZWxzZSBpZiBsZW5ndGgoJHZhbHMpID09IDMge1xyXG4gICAgICBAaWYgbnRoKCR2YWxzLCAzKSB7ICN7JGJvdHRvbX06IG50aCgkdmFscywgMyk7IH1cclxuICAgICAgQGlmIG50aCgkdmFscywgMikgeyAjeyRsZWZ0fTogICBudGgoJHZhbHMsIDIpOyB9XHJcbiAgICB9IEBlbHNlIGlmIGxlbmd0aCgkdmFscykgPT0gNCB7XHJcbiAgICAgIEBpZiBudGgoJHZhbHMsIDMpIHsgI3skYm90dG9tfTogbnRoKCR2YWxzLCAzKTsgfVxyXG4gICAgICBAaWYgbnRoKCR2YWxzLCA0KSB7ICN7JGxlZnR9OiAgIG50aCgkdmFscywgNCk7IH1cclxuICAgIH1cclxuICB9IEBlbHNlIHtcclxuICAgICN7JGFsbH06ICR2YWxzO1xyXG4gIH1cclxufVxyXG4iLCIvLyBVc2VkIGZvciBjcmVhdGluZyB0aGUgc291cmNlIHN0cmluZyBmb3IgZm9udHMgdXNpbmcgQGZvbnQtZmFjZVxyXG4vLyBSZWZlcmVuY2U6IGh0dHA6Ly9nb28uZ2wvUnUxYktQXHJcblxyXG5AZnVuY3Rpb24gZm9udC11cmwtcHJlZml4ZXIoJGFzc2V0LXBpcGVsaW5lKSB7XHJcbiAgQGlmICRhc3NldC1waXBlbGluZSA9PSB0cnVlIHtcclxuICAgIEByZXR1cm4gZm9udC11cmw7XHJcbiAgfSBAZWxzZSB7XHJcbiAgICBAcmV0dXJuIHVybDtcclxuICB9XHJcbn1cclxuXHJcbkBmdW5jdGlvbiBmb250LXNvdXJjZS1kZWNsYXJhdGlvbihcclxuICAkZm9udC1mYW1pbHksXHJcbiAgJGZpbGUtcGF0aCxcclxuICAkYXNzZXQtcGlwZWxpbmUsXHJcbiAgJGZpbGUtZm9ybWF0cyxcclxuICAkZm9udC11cmwpIHtcclxuXHJcbiAgJHNyYzogKCk7XHJcblxyXG4gICRmb3JtYXRzLW1hcDogKFxyXG4gICAgZW90OiAgIFwiI3skZmlsZS1wYXRofS5lb3Q/I2llZml4XCIgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksXHJcbiAgICB3b2ZmMjogXCIjeyRmaWxlLXBhdGh9LndvZmYyXCIgZm9ybWF0KFwid29mZjJcIiksXHJcbiAgICB3b2ZmOiAgXCIjeyRmaWxlLXBhdGh9LndvZmZcIiBmb3JtYXQoXCJ3b2ZmXCIpLFxyXG4gICAgdHRmOiAgIFwiI3skZmlsZS1wYXRofS50dGZcIiBmb3JtYXQoXCJ0cnVldHlwZVwiKSxcclxuICAgIHN2ZzogICBcIiN7JGZpbGUtcGF0aH0uc3ZnIyN7JGZvbnQtZmFtaWx5fVwiIGZvcm1hdChcInN2Z1wiKVxyXG4gICk7XHJcblxyXG4gIEBlYWNoICRrZXksICR2YWx1ZXMgaW4gJGZvcm1hdHMtbWFwIHtcclxuICAgIEBpZiBjb250YWlucygkZmlsZS1mb3JtYXRzLCAka2V5KSB7XHJcbiAgICAgICRmaWxlLXBhdGg6IG50aCgkdmFsdWVzLCAxKTtcclxuICAgICAgJGZvbnQtZm9ybWF0OiBudGgoJHZhbHVlcywgMik7XHJcblxyXG4gICAgICBAaWYgJGFzc2V0LXBpcGVsaW5lID09IHRydWUge1xyXG4gICAgICAgICRzcmM6IGFwcGVuZCgkc3JjLCBmb250LXVybCgkZmlsZS1wYXRoKSAkZm9udC1mb3JtYXQsIGNvbW1hKTtcclxuICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgJHNyYzogYXBwZW5kKCRzcmMsIHVybCgkZmlsZS1wYXRoKSAkZm9udC1mb3JtYXQsIGNvbW1hKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQHJldHVybiAkc3JjO1xyXG59XHJcbiIsIkBmdW5jdGlvbiBfZ3JhZGllbnQtcG9zaXRpb25zLXBhcnNlcigkZ3JhZGllbnQtdHlwZSwgJGdyYWRpZW50LXBvc2l0aW9ucykge1xyXG4gIEBpZiAkZ3JhZGllbnQtcG9zaXRpb25zXHJcbiAgYW5kICgkZ3JhZGllbnQtdHlwZSA9PSBsaW5lYXIpXHJcbiAgYW5kICh0eXBlLW9mKCRncmFkaWVudC1wb3NpdGlvbnMpICE9IGNvbG9yKSB7XHJcbiAgICAkZ3JhZGllbnQtcG9zaXRpb25zOiBfbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIoJGdyYWRpZW50LXBvc2l0aW9ucyk7XHJcbiAgfVxyXG4gIEBlbHNlIGlmICRncmFkaWVudC1wb3NpdGlvbnNcclxuICBhbmQgKCRncmFkaWVudC10eXBlID09IHJhZGlhbClcclxuICBhbmQgKHR5cGUtb2YoJGdyYWRpZW50LXBvc2l0aW9ucykgIT0gY29sb3IpIHtcclxuICAgICRncmFkaWVudC1wb3NpdGlvbnM6IF9yYWRpYWwtcG9zaXRpb25zLXBhcnNlcigkZ3JhZGllbnQtcG9zaXRpb25zKTtcclxuICB9XHJcbiAgQHJldHVybiAkZ3JhZGllbnQtcG9zaXRpb25zO1xyXG59XHJcbiIsIi8vIFByaXZhdGUgZnVuY3Rpb24gZm9yIGxpbmVhci1ncmFkaWVudC1wYXJzZXJcclxuQGZ1bmN0aW9uIF9saW5lYXItYW5nbGUtcGFyc2VyKCRpbWFnZSwgJGZpcnN0LXZhbCwgJHByZWZpeCwgJHN1ZmZpeCkge1xyXG4gICRvZmZzZXQ6IG51bGw7XHJcbiAgJHVuaXQtc2hvcnQ6ICBzdHItc2xpY2UoJGZpcnN0LXZhbCwgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSAtIDIsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xyXG4gICR1bml0LWxvbmc6ICAgc3RyLXNsaWNlKCRmaXJzdC12YWwsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkgLSAzLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcclxuXHJcbiAgQGlmICgkdW5pdC1sb25nID09IFwiZ3JhZFwiKSBvclxyXG4gICAgICAoJHVuaXQtbG9uZyA9PSBcInR1cm5cIikge1xyXG4gICAgJG9mZnNldDogaWYoJHVuaXQtbG9uZyA9PSBcImdyYWRcIiwgLTEwMGdyYWQgKiAzLCAtMC43NXR1cm4pO1xyXG4gIH1cclxuXHJcbiAgQGVsc2UgaWYgKCR1bml0LXNob3J0ID09IFwiZGVnXCIpIG9yXHJcbiAgICAgICAgICAgKCR1bml0LXNob3J0ID09IFwicmFkXCIpIHtcclxuICAgICRvZmZzZXQ6IGlmKCR1bml0LXNob3J0ID09IFwiZGVnXCIsIC05MCAqIDMsIDEuNnJhZCk7XHJcbiAgfVxyXG5cclxuICBAaWYgJG9mZnNldCB7XHJcbiAgICAkbnVtOiBfc3RyLXRvLW51bSgkZmlyc3QtdmFsKTtcclxuXHJcbiAgICBAcmV0dXJuIChcclxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRwcmVmaXggKyAoJG9mZnNldCAtICRudW0pICsgJHN1ZmZpeCxcclxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXHJcbiAgICApO1xyXG4gIH1cclxufVxyXG4iLCJAZnVuY3Rpb24gX2xpbmVhci1ncmFkaWVudC1wYXJzZXIoJGltYWdlKSB7XHJcbiAgJGltYWdlOiB1bnF1b3RlKCRpbWFnZSk7XHJcbiAgJGdyYWRpZW50czogKCk7XHJcbiAgJHN0YXJ0OiBzdHItaW5kZXgoJGltYWdlLCBcIihcIik7XHJcbiAgJGVuZDogc3RyLWluZGV4KCRpbWFnZSwgXCIsXCIpO1xyXG4gICRmaXJzdC12YWw6IHN0ci1zbGljZSgkaW1hZ2UsICRzdGFydCArIDEsICRlbmQgLSAxKTtcclxuXHJcbiAgJHByZWZpeDogc3RyLXNsaWNlKCRpbWFnZSwgMSwgJHN0YXJ0KTtcclxuICAkc3VmZml4OiBzdHItc2xpY2UoJGltYWdlLCAkZW5kLCBzdHItbGVuZ3RoKCRpbWFnZSkpO1xyXG5cclxuICAkaGFzLW11bHRpcGxlLXZhbHM6IHN0ci1pbmRleCgkZmlyc3QtdmFsLCBcIiBcIik7XHJcbiAgJGhhcy1zaW5nbGUtcG9zaXRpb246IHVucXVvdGUoX3Bvc2l0aW9uLWZsaXBwZXIoJGZpcnN0LXZhbCkgKyBcIlwiKTtcclxuICAkaGFzLWFuZ2xlOiBpcy1udW1iZXIoc3RyLXNsaWNlKCRmaXJzdC12YWwsIDEsIDEpKTtcclxuXHJcbiAgQGlmICRoYXMtbXVsdGlwbGUtdmFscyB7XHJcbiAgICAkZ3JhZGllbnRzOiBfbGluZWFyLXNpZGUtY29ybmVyLXBhcnNlcigkaW1hZ2UsICRmaXJzdC12YWwsICRwcmVmaXgsICRzdWZmaXgsICRoYXMtbXVsdGlwbGUtdmFscyk7XHJcbiAgfVxyXG5cclxuICBAZWxzZSBpZiAkaGFzLXNpbmdsZS1wb3NpdGlvbiAhPSBcIlwiIHtcclxuICAgICRwb3M6IHVucXVvdGUoJGhhcy1zaW5nbGUtcG9zaXRpb24gKyBcIlwiKTtcclxuXHJcbiAgICAkZ3JhZGllbnRzOiAoXHJcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkaW1hZ2UsXHJcbiAgICAgIHNwZWMtaW1hZ2U6ICRwcmVmaXggKyBcInRvIFwiICsgJHBvcyArICRzdWZmaXhcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBAZWxzZSBpZiAkaGFzLWFuZ2xlIHtcclxuICAgIC8vIFJvdGF0ZSBkZWdyZWUgZm9yIHdlYmtpdFxyXG4gICAgJGdyYWRpZW50czogX2xpbmVhci1hbmdsZS1wYXJzZXIoJGltYWdlLCAkZmlyc3QtdmFsLCAkcHJlZml4LCAkc3VmZml4KTtcclxuICB9XHJcblxyXG4gIEBlbHNlIHtcclxuICAgICRncmFkaWVudHM6IChcclxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRpbWFnZSxcclxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgQHJldHVybiAkZ3JhZGllbnRzO1xyXG59XHJcbiIsIkBmdW5jdGlvbiBfbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIoJHBvcykge1xyXG4gICR0eXBlOiB0eXBlLW9mKG50aCgkcG9zLCAxKSk7XHJcbiAgJHNwZWM6IG51bGw7XHJcbiAgJGRlZ3JlZTogbnVsbDtcclxuICAkc2lkZTogbnVsbDtcclxuICAkY29ybmVyOiBudWxsO1xyXG4gICRsZW5ndGg6IGxlbmd0aCgkcG9zKTtcclxuICAvLyBQYXJzZSBTaWRlIGFuZCBjb3JuZXIgcG9zaXRpb25zXHJcbiAgQGlmICgkbGVuZ3RoID4gMSkge1xyXG4gICAgQGlmIG50aCgkcG9zLCAxKSA9PSBcInRvXCIgeyAvLyBOZXdlciBzeW50YXhcclxuICAgICAgJHNpZGU6IG50aCgkcG9zLCAyKTtcclxuXHJcbiAgICAgIEBpZiAkbGVuZ3RoID09IDIgeyAvLyBlZy4gdG8gdG9wXHJcbiAgICAgICAgLy8gU3dhcCBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHlcclxuICAgICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcihudGgoJHBvcywgMikpO1xyXG4gICAgICB9XHJcbiAgICAgIEBlbHNlIGlmICRsZW5ndGggPT0gMyB7IC8vIGVnLiB0byB0b3AgbGVmdFxyXG4gICAgICAgICRjb3JuZXI6IG50aCgkcG9zLCAzKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgQGVsc2UgaWYgJGxlbmd0aCA9PSAyIHsgLy8gT2xkZXIgc3ludGF4IChcInRvcCBsZWZ0XCIpXHJcbiAgICAgICRzaWRlOiBfcG9zaXRpb24tZmxpcHBlcihudGgoJHBvcywgMSkpO1xyXG4gICAgICAkY29ybmVyOiBfcG9zaXRpb24tZmxpcHBlcihudGgoJHBvcywgMikpO1xyXG4gICAgfVxyXG5cclxuICAgIEBpZiAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJsZWZ0IHRvcFwiKSBvciAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJ0b3AgbGVmdFwiKSB7XHJcbiAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKCN7JHNpZGV9KSBfcG9zaXRpb24tZmxpcHBlcigjeyRjb3JuZXJ9KTtcclxuICAgIH1cclxuICAgIEBlbHNlIGlmIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcInJpZ2h0IHRvcFwiKSBvciAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJ0b3AgcmlnaHRcIikge1xyXG4gICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcigjeyRzaWRlfSkgX3Bvc2l0aW9uLWZsaXBwZXIoI3skY29ybmVyfSk7XHJcbiAgICB9XHJcbiAgICBAZWxzZSBpZiAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJyaWdodCBib3R0b21cIikgb3IgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwiYm90dG9tIHJpZ2h0XCIpIHtcclxuICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIoI3skc2lkZX0pIF9wb3NpdGlvbi1mbGlwcGVyKCN7JGNvcm5lcn0pO1xyXG4gICAgfVxyXG4gICAgQGVsc2UgaWYgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwibGVmdCBib3R0b21cIikgb3IgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwiYm90dG9tIGxlZnRcIikge1xyXG4gICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcigjeyRzaWRlfSkgX3Bvc2l0aW9uLWZsaXBwZXIoI3skY29ybmVyfSk7XHJcbiAgICB9XHJcbiAgICAkc3BlYzogdG8gJHNpZGUgJGNvcm5lcjtcclxuICB9XHJcbiAgQGVsc2UgaWYgJGxlbmd0aCA9PSAxIHtcclxuICAgIC8vIFN3YXAgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5XHJcbiAgICBAaWYgJHR5cGUgPT0gc3RyaW5nIHtcclxuICAgICAgJGRlZ3JlZTogJHBvcztcclxuICAgICAgJHNwZWM6IHRvIF9wb3NpdGlvbi1mbGlwcGVyKCRwb3MpO1xyXG4gICAgfVxyXG4gICAgQGVsc2Uge1xyXG4gICAgICAkZGVncmVlOiAtMjcwIC0gJHBvczsgLy9yb3RhdGUgdGhlIGdyYWRpZW50IG9wcG9zaXRlIGZyb20gc3BlY1xyXG4gICAgICAkc3BlYzogJHBvcztcclxuICAgIH1cclxuICB9XHJcbiAgJGRlZ3JlZTogdW5xdW90ZSgkZGVncmVlICsgXCIsXCIpO1xyXG4gICRzcGVjOiAgIHVucXVvdGUoJHNwZWMgKyBcIixcIik7XHJcbiAgQHJldHVybiAkZGVncmVlICRzcGVjO1xyXG59XHJcblxyXG5AZnVuY3Rpb24gX3Bvc2l0aW9uLWZsaXBwZXIoJHBvcykge1xyXG4gIEByZXR1cm4gaWYoJHBvcyA9PSBsZWZ0LCByaWdodCwgbnVsbClcclxuICAgICAgICAgaWYoJHBvcyA9PSByaWdodCwgbGVmdCwgbnVsbClcclxuICAgICAgICAgaWYoJHBvcyA9PSB0b3AsIGJvdHRvbSwgbnVsbClcclxuICAgICAgICAgaWYoJHBvcyA9PSBib3R0b20sIHRvcCwgbnVsbCk7XHJcbn1cclxuIiwiLy8gUHJpdmF0ZSBmdW5jdGlvbiBmb3IgbGluZWFyLWdyYWRpZW50LXBhcnNlclxyXG5AZnVuY3Rpb24gX2xpbmVhci1zaWRlLWNvcm5lci1wYXJzZXIoJGltYWdlLCAkZmlyc3QtdmFsLCAkcHJlZml4LCAkc3VmZml4LCAkaGFzLW11bHRpcGxlLXZhbHMpIHtcclxuICAkdmFsLTE6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAxLCAkaGFzLW11bHRpcGxlLXZhbHMgLSAxKTtcclxuICAkdmFsLTI6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAkaGFzLW11bHRpcGxlLXZhbHMgKyAxLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcclxuICAkdmFsLTM6IG51bGw7XHJcbiAgJGhhcy12YWwtMzogc3RyLWluZGV4KCR2YWwtMiwgXCIgXCIpO1xyXG5cclxuICBAaWYgJGhhcy12YWwtMyB7XHJcbiAgICAkdmFsLTM6IHN0ci1zbGljZSgkdmFsLTIsICRoYXMtdmFsLTMgKyAxLCBzdHItbGVuZ3RoKCR2YWwtMikpO1xyXG4gICAgJHZhbC0yOiBzdHItc2xpY2UoJHZhbC0yLCAxLCAkaGFzLXZhbC0zIC0gMSk7XHJcbiAgfVxyXG5cclxuICAkcG9zOiBfcG9zaXRpb24tZmxpcHBlcigkdmFsLTEpIF9wb3NpdGlvbi1mbGlwcGVyKCR2YWwtMikgX3Bvc2l0aW9uLWZsaXBwZXIoJHZhbC0zKTtcclxuICAkcG9zOiB1bnF1b3RlKCRwb3MgKyBcIlwiKTtcclxuXHJcbiAgLy8gVXNlIG9sZCBzcGVjIGZvciB3ZWJraXRcclxuICBAaWYgJHZhbC0xID09IFwidG9cIiB7XHJcbiAgICBAcmV0dXJuIChcclxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRwcmVmaXggKyAkcG9zICsgJHN1ZmZpeCxcclxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLy8gQnJpbmcgdGhlIGNvZGUgdXAgdG8gc3BlY1xyXG4gIEBlbHNlIHtcclxuICAgIEByZXR1cm4gKFxyXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJGltYWdlLFxyXG4gICAgICBzcGVjLWltYWdlOiAkcHJlZml4ICsgXCJ0byBcIiArICRwb3MgKyAkc3VmZml4XHJcbiAgICApO1xyXG4gIH1cclxufVxyXG4iLCJAZnVuY3Rpb24gX3JhZGlhbC1hcmctcGFyc2VyKCRnMSwgJGcyLCAkcG9zLCAkc2hhcGUtc2l6ZSkge1xyXG4gIEBlYWNoICR2YWx1ZSBpbiAkZzEsICRnMiB7XHJcbiAgICAkZmlyc3QtdmFsOiBudGgoJHZhbHVlLCAxKTtcclxuICAgICRwb3MtdHlwZTogIHR5cGUtb2YoJGZpcnN0LXZhbCk7XHJcbiAgICAkc3BlYy1hdC1pbmRleDogbnVsbDtcclxuXHJcbiAgICAvLyBEZXRlcm1pbmUgaWYgc3BlYyB3YXMgcGFzc2VkIHRvIG1peGluXHJcbiAgICBAaWYgdHlwZS1vZigkdmFsdWUpID09IGxpc3Qge1xyXG4gICAgICAkc3BlYy1hdC1pbmRleDogaWYoaW5kZXgoJHZhbHVlLCBhdCksIGluZGV4KCR2YWx1ZSwgYXQpLCBmYWxzZSk7XHJcbiAgICB9XHJcbiAgICBAaWYgJHNwZWMtYXQtaW5kZXgge1xyXG4gICAgICBAaWYgJHNwZWMtYXQtaW5kZXggPiAxIHtcclxuICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICgkc3BlYy1hdC1pbmRleCAtIDEpIHtcclxuICAgICAgICAgICRzaGFwZS1zaXplOiAkc2hhcGUtc2l6ZSBudGgoJHZhbHVlLCAkaSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBmb3IgJGkgZnJvbSAoJHNwZWMtYXQtaW5kZXggKyAxKSB0aHJvdWdoIGxlbmd0aCgkdmFsdWUpIHtcclxuICAgICAgICAgICRwb3M6ICRwb3MgbnRoKCR2YWx1ZSwgJGkpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBAZWxzZSBpZiAkc3BlYy1hdC1pbmRleCA9PSAxIHtcclxuICAgICAgICBAZm9yICRpIGZyb20gKCRzcGVjLWF0LWluZGV4ICsgMSkgdGhyb3VnaCBsZW5ndGgoJHZhbHVlKSB7XHJcbiAgICAgICAgICAkcG9zOiAkcG9zIG50aCgkdmFsdWUsICRpKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgJGcxOiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIElmIG5vdCBzcGVjIGNhbGN1bGF0ZSBjb3JyZWN0IHZhbHVlc1xyXG4gICAgQGVsc2Uge1xyXG4gICAgICBAaWYgKCRwb3MtdHlwZSAhPSBjb2xvcikgb3IgKCRmaXJzdC12YWwgIT0gXCJ0cmFuc3BhcmVudFwiKSB7XHJcbiAgICAgICAgQGlmICgkcG9zLXR5cGUgPT0gbnVtYmVyKVxyXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY2VudGVyXCIpXHJcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJ0b3BcIilcclxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcInJpZ2h0XCIpXHJcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJib3R0b21cIilcclxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImxlZnRcIikge1xyXG5cclxuICAgICAgICAgICRwb3M6ICR2YWx1ZTtcclxuXHJcbiAgICAgICAgICBAaWYgJHBvcyA9PSAkZzEge1xyXG4gICAgICAgICAgICAkZzE6IG51bGw7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBAZWxzZSBpZlxyXG4gICAgICAgICAgICgkZmlyc3QtdmFsID09IFwiZWxsaXBzZVwiKVxyXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY2lyY2xlXCIpXHJcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjbG9zZXN0LXNpZGVcIilcclxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNsb3Nlc3QtY29ybmVyXCIpXHJcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJmYXJ0aGVzdC1zaWRlXCIpXHJcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJmYXJ0aGVzdC1jb3JuZXJcIilcclxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNvbnRhaW5cIilcclxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNvdmVyXCIpIHtcclxuXHJcbiAgICAgICAgICAkc2hhcGUtc2l6ZTogJHZhbHVlO1xyXG5cclxuICAgICAgICAgIEBpZiAkdmFsdWUgPT0gJGcxIHtcclxuICAgICAgICAgICAgJGcxOiBudWxsO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIEBlbHNlIGlmICR2YWx1ZSA9PSAkZzIge1xyXG4gICAgICAgICAgICAkZzI6IG51bGw7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIEByZXR1cm4gJGcxLCAkZzIsICRwb3MsICRzaGFwZS1zaXplO1xyXG59XHJcbiIsIkBmdW5jdGlvbiBfcmFkaWFsLXBvc2l0aW9ucy1wYXJzZXIoJGdyYWRpZW50LXBvcykge1xyXG4gICRzaGFwZS1zaXplOiBudGgoJGdyYWRpZW50LXBvcywgMSk7XHJcbiAgJHBvczogICAgICAgIG50aCgkZ3JhZGllbnQtcG9zLCAyKTtcclxuICAkc2hhcGUtc2l6ZS1zcGVjOiBfc2hhcGUtc2l6ZS1zdHJpcHBlcigkc2hhcGUtc2l6ZSk7XHJcblxyXG4gICRwcmUtc3BlYzogdW5xdW90ZShpZigkcG9zLCBcIiN7JHBvc30sIFwiLCBudWxsKSlcclxuICAgICAgICAgICAgIHVucXVvdGUoaWYoJHNoYXBlLXNpemUsIFwiI3skc2hhcGUtc2l6ZX0sXCIsIG51bGwpKTtcclxuICAkcG9zLXNwZWM6IGlmKCRwb3MsIFwiYXQgI3skcG9zfVwiLCBudWxsKTtcclxuXHJcbiAgJHNwZWM6IFwiI3skc2hhcGUtc2l6ZS1zcGVjfSAjeyRwb3Mtc3BlY31cIjtcclxuXHJcbiAgLy8gQWRkIGNvbW1hXHJcbiAgQGlmICgkc3BlYyAhPSBcIiAgXCIpIHtcclxuICAgICRzcGVjOiBcIiN7JHNwZWN9LFwiO1xyXG4gIH1cclxuXHJcbiAgQHJldHVybiAkcHJlLXNwZWMgJHNwZWM7XHJcbn1cclxuIiwiQGZ1bmN0aW9uIF9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyKCRpbWFnZSkge1xyXG4gICRpbWFnZTogdW5xdW90ZSgkaW1hZ2UpO1xyXG4gICRncmFkaWVudHM6ICgpO1xyXG4gICRzdGFydDogc3RyLWluZGV4KCRpbWFnZSwgXCIoXCIpO1xyXG4gICRlbmQ6IHN0ci1pbmRleCgkaW1hZ2UsIFwiLFwiKTtcclxuICAkZmlyc3QtdmFsOiBzdHItc2xpY2UoJGltYWdlLCAkc3RhcnQgKyAxLCAkZW5kIC0gMSk7XHJcblxyXG4gICRwcmVmaXg6IHN0ci1zbGljZSgkaW1hZ2UsIDEsICRzdGFydCk7XHJcbiAgJHN1ZmZpeDogc3RyLXNsaWNlKCRpbWFnZSwgJGVuZCwgc3RyLWxlbmd0aCgkaW1hZ2UpKTtcclxuXHJcbiAgJGlzLXNwZWMtc3ludGF4OiBzdHItaW5kZXgoJGZpcnN0LXZhbCwgXCJhdFwiKTtcclxuXHJcbiAgQGlmICRpcy1zcGVjLXN5bnRheCBhbmQgJGlzLXNwZWMtc3ludGF4ID4gMSB7XHJcbiAgICAka2V5d29yZDogc3RyLXNsaWNlKCRmaXJzdC12YWwsIDEsICRpcy1zcGVjLXN5bnRheCAtIDIpO1xyXG4gICAgJHBvczogc3RyLXNsaWNlKCRmaXJzdC12YWwsICRpcy1zcGVjLXN5bnRheCArIDMsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xyXG4gICAgJHBvczogYXBwZW5kKCRwb3MsICRrZXl3b3JkLCBjb21tYSk7XHJcblxyXG4gICAgJGdyYWRpZW50czogKFxyXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJHByZWZpeCArICRwb3MgKyAkc3VmZml4LFxyXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBAZWxzZSBpZiAkaXMtc3BlYy1zeW50YXggPT0gMSB7XHJcbiAgICAkcG9zOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgJGlzLXNwZWMtc3ludGF4ICsgMywgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XHJcblxyXG4gICAgJGdyYWRpZW50czogKFxyXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJHByZWZpeCArICRwb3MgKyAkc3VmZml4LFxyXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBAZWxzZSBpZiBzdHItaW5kZXgoJGltYWdlLCBcImNvdmVyXCIpIG9yIHN0ci1pbmRleCgkaW1hZ2UsIFwiY29udGFpblwiKSB7XHJcbiAgICBAd2FybiBcIlJhZGlhbC1ncmFkaWVudCBuZWVkcyB0byBiZSB1cGRhdGVkIHRvIGNvbmZvcm0gdG8gbGF0ZXN0IHNwZWMuXCI7XHJcblxyXG4gICAgJGdyYWRpZW50czogKFxyXG4gICAgICB3ZWJraXQtaW1hZ2U6IG51bGwsXHJcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIEBlbHNlIHtcclxuICAgICRncmFkaWVudHM6IChcclxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRpbWFnZSxcclxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgQHJldHVybiAkZ3JhZGllbnRzO1xyXG59XHJcbiIsIi8vIFVzZXIgZm9yIGxpbmVhciBhbmQgcmFkaWFsIGdyYWRpZW50cyB3aXRoaW4gYmFja2dyb3VuZC1pbWFnZSBvciBib3JkZXItaW1hZ2UgcHJvcGVydGllc1xyXG5cclxuQGZ1bmN0aW9uIF9yZW5kZXItZ3JhZGllbnRzKCRncmFkaWVudC1wb3NpdGlvbnMsICRncmFkaWVudHMsICRncmFkaWVudC10eXBlLCAkdmVuZG9yOiBmYWxzZSkge1xyXG4gICRwcmUtc3BlYzogbnVsbDtcclxuICAkc3BlYzogbnVsbDtcclxuICAkdmVuZG9yLWdyYWRpZW50czogbnVsbDtcclxuICBAaWYgJGdyYWRpZW50LXR5cGUgPT0gbGluZWFyIHtcclxuICAgIEBpZiAkZ3JhZGllbnQtcG9zaXRpb25zIHtcclxuICAgICAgJHByZS1zcGVjOiBudGgoJGdyYWRpZW50LXBvc2l0aW9ucywgMSk7XHJcbiAgICAgICRzcGVjOiAgICAgbnRoKCRncmFkaWVudC1wb3NpdGlvbnMsIDIpO1xyXG4gICAgfVxyXG4gIH1cclxuICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSByYWRpYWwge1xyXG4gICAgJHByZS1zcGVjOiBudGgoJGdyYWRpZW50LXBvc2l0aW9ucywgMSk7XHJcbiAgICAkc3BlYzogICAgIG50aCgkZ3JhZGllbnQtcG9zaXRpb25zLCAyKTtcclxuICB9XHJcblxyXG4gIEBpZiAkdmVuZG9yIHtcclxuICAgICR2ZW5kb3ItZ3JhZGllbnRzOiAtI3skdmVuZG9yfS0jeyRncmFkaWVudC10eXBlfS1ncmFkaWVudCgjeyRwcmUtc3BlY30gJGdyYWRpZW50cyk7XHJcbiAgfVxyXG4gIEBlbHNlIGlmICR2ZW5kb3IgPT0gZmFsc2Uge1xyXG4gICAgJHZlbmRvci1ncmFkaWVudHM6IFwiI3skZ3JhZGllbnQtdHlwZX0tZ3JhZGllbnQoI3skc3BlY30gI3skZ3JhZGllbnRzfSlcIjtcclxuICAgICR2ZW5kb3ItZ3JhZGllbnRzOiB1bnF1b3RlKCR2ZW5kb3ItZ3JhZGllbnRzKTtcclxuICB9XHJcbiAgQHJldHVybiAkdmVuZG9yLWdyYWRpZW50cztcclxufVxyXG4iLCJAZnVuY3Rpb24gX3NoYXBlLXNpemUtc3RyaXBwZXIoJHNoYXBlLXNpemUpIHtcclxuICAkc2hhcGUtc2l6ZS1zcGVjOiBudWxsO1xyXG4gIEBlYWNoICR2YWx1ZSBpbiAkc2hhcGUtc2l6ZSB7XHJcbiAgICBAaWYgKCR2YWx1ZSA9PSBcImNvdmVyXCIpIG9yICgkdmFsdWUgPT0gXCJjb250YWluXCIpIHtcclxuICAgICAgJHZhbHVlOiBudWxsO1xyXG4gICAgfVxyXG4gICAgJHNoYXBlLXNpemUtc3BlYzogXCIjeyRzaGFwZS1zaXplLXNwZWN9ICN7JHZhbHVlfVwiO1xyXG4gIH1cclxuICBAcmV0dXJuICRzaGFwZS1zaXplLXNwZWM7XHJcbn1cclxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xyXG4vLyBIZWxwZXIgZnVuY3Rpb24gZm9yIGxpbmVhci9yYWRpYWwtZ3JhZGllbnQtcGFyc2Vycy5cclxuLy8gU291cmNlOiBodHRwOi8vc2Fzc21laXN0ZXIuY29tL2dpc3QvOTY0NzQwOFxyXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXHJcbkBmdW5jdGlvbiBfc3RyLXRvLW51bSgkc3RyaW5nKSB7XHJcbiAgLy8gTWF0cmljZXNcclxuICAkc3RyaW5nczogXCIwXCIgXCIxXCIgXCIyXCIgXCIzXCIgXCI0XCIgXCI1XCIgXCI2XCIgXCI3XCIgXCI4XCIgXCI5XCI7XHJcbiAgJG51bWJlcnM6ICAwICAgMSAgIDIgICAzICAgNCAgIDUgICA2ICAgNyAgIDggICA5O1xyXG5cclxuICAvLyBSZXN1bHRcclxuICAkcmVzdWx0OiAwO1xyXG4gICRkaXZpZGVyOiAwO1xyXG4gICRtaW51czogZmFsc2U7XHJcblxyXG4gIC8vIExvb3BpbmcgdGhyb3VnaCBhbGwgY2hhcmFjdGVyc1xyXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggc3RyLWxlbmd0aCgkc3RyaW5nKSB7XHJcbiAgICAkY2hhcmFjdGVyOiBzdHItc2xpY2UoJHN0cmluZywgJGksICRpKTtcclxuICAgICRpbmRleDogaW5kZXgoJHN0cmluZ3MsICRjaGFyYWN0ZXIpO1xyXG5cclxuICAgIEBpZiAkY2hhcmFjdGVyID09IFwiLVwiIHtcclxuICAgICAgJG1pbnVzOiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIEBlbHNlIGlmICRjaGFyYWN0ZXIgPT0gXCIuXCIge1xyXG4gICAgICAkZGl2aWRlcjogMTtcclxuICAgIH1cclxuXHJcbiAgICBAZWxzZSB7XHJcbiAgICAgIEBpZiBub3QgJGluZGV4IHtcclxuICAgICAgICAkcmVzdWx0OiBpZigkbWludXMsICRyZXN1bHQgKiAtMSwgJHJlc3VsdCk7XHJcbiAgICAgICAgQHJldHVybiBfY29udmVydC11bml0cygkcmVzdWx0LCBzdHItc2xpY2UoJHN0cmluZywgJGkpKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJG51bWJlcjogbnRoKCRudW1iZXJzLCAkaW5kZXgpO1xyXG5cclxuICAgICAgQGlmICRkaXZpZGVyID09IDAge1xyXG4gICAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKiAxMDtcclxuICAgICAgfVxyXG5cclxuICAgICAgQGVsc2Uge1xyXG4gICAgICAgIC8vIE1vdmUgdGhlIGRlY2ltYWwgZG90IHRvIHRoZSBsZWZ0XHJcbiAgICAgICAgJGRpdmlkZXI6ICRkaXZpZGVyICogMTA7XHJcbiAgICAgICAgJG51bWJlcjogJG51bWJlciAvICRkaXZpZGVyO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAkcmVzdWx0OiAkcmVzdWx0ICsgJG51bWJlcjtcclxuICAgIH1cclxuICB9XHJcbiAgQHJldHVybiBpZigkbWludXMsICRyZXN1bHQgKiAtMSwgJHJlc3VsdCk7XHJcbn1cclxuIiwiLy8gaHR0cDovL3d3dy53My5vcmcvVFIvY3NzMy1hbmltYXRpb25zLyN0aGUtYW5pbWF0aW9uLW5hbWUtcHJvcGVydHktXHJcbi8vIEVhY2ggb2YgdGhlc2UgbWl4aW5zIHN1cHBvcnQgY29tbWEgc2VwYXJhdGVkIGxpc3RzIG9mIHZhbHVlcywgd2hpY2ggYWxsb3dzIGRpZmZlcmVudCB0cmFuc2l0aW9ucyBmb3IgaW5kaXZpZHVhbCBwcm9wZXJ0aWVzIHRvIGJlIGRlc2NyaWJlZCBpbiBhIHNpbmdsZSBzdHlsZSBydWxlLiBFYWNoIHZhbHVlIGluIHRoZSBsaXN0IGNvcnJlc3BvbmRzIHRvIHRoZSB2YWx1ZSBhdCB0aGF0IHNhbWUgcG9zaXRpb24gaW4gdGhlIG90aGVyIHByb3BlcnRpZXMuXHJcblxyXG5AbWl4aW4gYW5pbWF0aW9uKCRhbmltYXRpb25zLi4uKSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLCAkYW5pbWF0aW9ucywgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGFuaW1hdGlvbi1uYW1lKCRuYW1lcy4uLikge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1uYW1lLCAkbmFtZXMsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBhbmltYXRpb24tZHVyYXRpb24oJHRpbWVzLi4uKSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWR1cmF0aW9uLCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uKCRtb3Rpb25zLi4uKSB7XHJcbiAgLy8gZWFzZSB8IGxpbmVhciB8IGVhc2UtaW4gfCBlYXNlLW91dCB8IGVhc2UtaW4tb3V0XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbiwgJG1vdGlvbnMsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50KCR2YWx1ZXMuLi4pIHtcclxuICAvLyBpbmZpbml0ZSB8IDxudW1iZXI+XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgJHZhbHVlcywgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGFuaW1hdGlvbi1kaXJlY3Rpb24oJGRpcmVjdGlvbnMuLi4pIHtcclxuICAvLyBub3JtYWwgfCBhbHRlcm5hdGVcclxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZGlyZWN0aW9uLCAkZGlyZWN0aW9ucywgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGFuaW1hdGlvbi1wbGF5LXN0YXRlKCRzdGF0ZXMuLi4pIHtcclxuICAvLyBydW5uaW5nIHwgcGF1c2VkXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLXBsYXktc3RhdGUsICRzdGF0ZXMsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBhbmltYXRpb24tZGVsYXkoJHRpbWVzLi4uKSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWRlbGF5LCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBhbmltYXRpb24tZmlsbC1tb2RlKCRtb2Rlcy4uLikge1xyXG4gIC8vIG5vbmUgfCBmb3J3YXJkcyB8IGJhY2t3YXJkcyB8IGJvdGhcclxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZmlsbC1tb2RlLCAkbW9kZXMsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuIiwiQG1peGluIGFwcGVhcmFuY2UoJHZhbHVlKSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYXBwZWFyYW5jZSwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XHJcbn1cclxuIiwiQG1peGluIGJhY2tmYWNlLXZpc2liaWxpdHkoJHZpc2liaWxpdHkpIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcihiYWNrZmFjZS12aXNpYmlsaXR5LCAkdmlzaWJpbGl0eSwgd2Via2l0IHNwZWMpO1xyXG59XHJcbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cclxuLy8gQmFja2dyb3VuZCBwcm9wZXJ0eSBmb3IgYWRkaW5nIG11bHRpcGxlIGJhY2tncm91bmRzIHVzaW5nIHNob3J0aGFuZFxyXG4vLyBub3RhdGlvbi5cclxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xyXG5cclxuQG1peGluIGJhY2tncm91bmQoJGJhY2tncm91bmRzLi4uKSB7XHJcbiAgJHdlYmtpdC1iYWNrZ3JvdW5kczogKCk7XHJcbiAgJHNwZWMtYmFja2dyb3VuZHM6ICgpO1xyXG5cclxuICBAZWFjaCAkYmFja2dyb3VuZCBpbiAkYmFja2dyb3VuZHMge1xyXG4gICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiAoKTtcclxuICAgICRzcGVjLWJhY2tncm91bmQ6ICgpO1xyXG4gICAgJGJhY2tncm91bmQtdHlwZTogdHlwZS1vZigkYmFja2dyb3VuZCk7XHJcblxyXG4gICAgQGlmICRiYWNrZ3JvdW5kLXR5cGUgPT0gc3RyaW5nIG9yICRiYWNrZ3JvdW5kLXR5cGUgPT0gbGlzdCB7XHJcbiAgICAgICRiYWNrZ3JvdW5kLXN0cjogaWYoJGJhY2tncm91bmQtdHlwZSA9PSBsaXN0LCBudGgoJGJhY2tncm91bmQsIDEpLCAkYmFja2dyb3VuZCk7XHJcblxyXG4gICAgICAkdXJsLXN0cjogICAgICAgc3RyLXNsaWNlKCRiYWNrZ3JvdW5kLXN0ciwgMSwgMyk7XHJcbiAgICAgICRncmFkaWVudC10eXBlOiBzdHItc2xpY2UoJGJhY2tncm91bmQtc3RyLCAxLCA2KTtcclxuXHJcbiAgICAgIEBpZiAkdXJsLXN0ciA9PSBcInVybFwiIHtcclxuICAgICAgICAkd2Via2l0LWJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xyXG4gICAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgJGJhY2tncm91bmQ7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwibGluZWFyXCIge1xyXG4gICAgICAgICRncmFkaWVudHM6IF9saW5lYXItZ3JhZGllbnQtcGFyc2VyKFwiI3skYmFja2dyb3VuZH1cIik7XHJcbiAgICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XHJcbiAgICAgICAgJHNwZWMtYmFja2dyb3VuZDogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcInJhZGlhbFwiIHtcclxuICAgICAgICAkZ3JhZGllbnRzOiBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcihcIiN7JGJhY2tncm91bmR9XCIpO1xyXG4gICAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xyXG4gICAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgQGVsc2Uge1xyXG4gICAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XHJcbiAgICAgICAgJHNwZWMtYmFja2dyb3VuZDogICAkYmFja2dyb3VuZDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBlbHNlIHtcclxuICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcclxuICAgICAgJHNwZWMtYmFja2dyb3VuZDogICAkYmFja2dyb3VuZDtcclxuICAgIH1cclxuXHJcbiAgICAkd2Via2l0LWJhY2tncm91bmRzOiBhcHBlbmQoJHdlYmtpdC1iYWNrZ3JvdW5kcywgJHdlYmtpdC1iYWNrZ3JvdW5kLCBjb21tYSk7XHJcbiAgICAkc3BlYy1iYWNrZ3JvdW5kczogICBhcHBlbmQoJHNwZWMtYmFja2dyb3VuZHMsICAgJHNwZWMtYmFja2dyb3VuZCwgICBjb21tYSk7XHJcbiAgfVxyXG5cclxuICBiYWNrZ3JvdW5kOiAkd2Via2l0LWJhY2tncm91bmRzO1xyXG4gIGJhY2tncm91bmQ6ICRzcGVjLWJhY2tncm91bmRzO1xyXG59XHJcbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cclxuLy8gQmFja2dyb3VuZC1pbWFnZSBwcm9wZXJ0eSBmb3IgYWRkaW5nIG11bHRpcGxlIGJhY2tncm91bmQgaW1hZ2VzIHdpdGhcclxuLy8gZ3JhZGllbnRzLCBvciBmb3Igc3RyaW5naW5nIG11bHRpcGxlIGdyYWRpZW50cyB0b2dldGhlci5cclxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xyXG5cclxuQG1peGluIGJhY2tncm91bmQtaW1hZ2UoJGltYWdlcy4uLikge1xyXG4gICR3ZWJraXQtaW1hZ2VzOiAoKTtcclxuICAkc3BlYy1pbWFnZXM6ICgpO1xyXG5cclxuICBAZWFjaCAkaW1hZ2UgaW4gJGltYWdlcyB7XHJcbiAgICAkd2Via2l0LWltYWdlOiAoKTtcclxuICAgICRzcGVjLWltYWdlOiAoKTtcclxuXHJcbiAgICBAaWYgKHR5cGUtb2YoJGltYWdlKSA9PSBzdHJpbmcpIHtcclxuICAgICAgJHVybC1zdHI6ICAgICAgIHN0ci1zbGljZSgkaW1hZ2UsIDEsIDMpO1xyXG4gICAgICAkZ3JhZGllbnQtdHlwZTogc3RyLXNsaWNlKCRpbWFnZSwgMSwgNik7XHJcblxyXG4gICAgICBAaWYgJHVybC1zdHIgPT0gXCJ1cmxcIiB7XHJcbiAgICAgICAgJHdlYmtpdC1pbWFnZTogJGltYWdlO1xyXG4gICAgICAgICRzcGVjLWltYWdlOiAgICRpbWFnZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJsaW5lYXJcIiB7XHJcbiAgICAgICAgJGdyYWRpZW50czogX2xpbmVhci1ncmFkaWVudC1wYXJzZXIoJGltYWdlKTtcclxuICAgICAgICAkd2Via2l0LWltYWdlOiAgbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xyXG4gICAgICAgICRzcGVjLWltYWdlOiAgICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcInJhZGlhbFwiIHtcclxuICAgICAgICAkZ3JhZGllbnRzOiBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcigkaW1hZ2UpO1xyXG4gICAgICAgICR3ZWJraXQtaW1hZ2U6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcclxuICAgICAgICAkc3BlYy1pbWFnZTogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJHdlYmtpdC1pbWFnZXM6IGFwcGVuZCgkd2Via2l0LWltYWdlcywgJHdlYmtpdC1pbWFnZSwgY29tbWEpO1xyXG4gICAgJHNwZWMtaW1hZ2VzOiAgIGFwcGVuZCgkc3BlYy1pbWFnZXMsICAgJHNwZWMtaW1hZ2UsICAgY29tbWEpO1xyXG4gIH1cclxuXHJcbiAgYmFja2dyb3VuZC1pbWFnZTogJHdlYmtpdC1pbWFnZXM7XHJcbiAgYmFja2dyb3VuZC1pbWFnZTogJHNwZWMtaW1hZ2VzO1xyXG59XHJcbiIsIkBtaXhpbiBib3JkZXItaW1hZ2UoJGJvcmRlcnMuLi4pIHtcclxuICAkd2Via2l0LWJvcmRlcnM6ICgpO1xyXG4gICRzcGVjLWJvcmRlcnM6ICgpO1xyXG5cclxuICBAZWFjaCAkYm9yZGVyIGluICRib3JkZXJzIHtcclxuICAgICR3ZWJraXQtYm9yZGVyOiAoKTtcclxuICAgICRzcGVjLWJvcmRlcjogKCk7XHJcbiAgICAkYm9yZGVyLXR5cGU6IHR5cGUtb2YoJGJvcmRlcik7XHJcblxyXG4gICAgQGlmICRib3JkZXItdHlwZSA9PSBzdHJpbmcgb3IgbGlzdCB7XHJcbiAgICAgICRib3JkZXItc3RyOiBpZigkYm9yZGVyLXR5cGUgPT0gbGlzdCwgbnRoKCRib3JkZXIsIDEpLCAkYm9yZGVyKTtcclxuXHJcbiAgICAgICR1cmwtc3RyOiAgICAgICBzdHItc2xpY2UoJGJvcmRlci1zdHIsIDEsIDMpO1xyXG4gICAgICAkZ3JhZGllbnQtdHlwZTogc3RyLXNsaWNlKCRib3JkZXItc3RyLCAxLCA2KTtcclxuXHJcbiAgICAgIEBpZiAkdXJsLXN0ciA9PSBcInVybFwiIHtcclxuICAgICAgICAkd2Via2l0LWJvcmRlcjogJGJvcmRlcjtcclxuICAgICAgICAkc3BlYy1ib3JkZXI6ICAgJGJvcmRlcjtcclxuICAgICAgfVxyXG5cclxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJsaW5lYXJcIiB7XHJcbiAgICAgICAgJGdyYWRpZW50czogX2xpbmVhci1ncmFkaWVudC1wYXJzZXIoXCIjeyRib3JkZXJ9XCIpO1xyXG4gICAgICAgICR3ZWJraXQtYm9yZGVyOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XHJcbiAgICAgICAgJHNwZWMtYm9yZGVyOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwicmFkaWFsXCIge1xyXG4gICAgICAgICRncmFkaWVudHM6IF9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyKFwiI3skYm9yZGVyfVwiKTtcclxuICAgICAgICAkd2Via2l0LWJvcmRlcjogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xyXG4gICAgICAgICRzcGVjLWJvcmRlcjogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBAZWxzZSB7XHJcbiAgICAgICAgJHdlYmtpdC1ib3JkZXI6ICRib3JkZXI7XHJcbiAgICAgICAgJHNwZWMtYm9yZGVyOiAgICRib3JkZXI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBAZWxzZSB7XHJcbiAgICAgICR3ZWJraXQtYm9yZGVyOiAkYm9yZGVyO1xyXG4gICAgICAkc3BlYy1ib3JkZXI6ICAgJGJvcmRlcjtcclxuICAgIH1cclxuXHJcbiAgICAkd2Via2l0LWJvcmRlcnM6IGFwcGVuZCgkd2Via2l0LWJvcmRlcnMsICR3ZWJraXQtYm9yZGVyLCBjb21tYSk7XHJcbiAgICAkc3BlYy1ib3JkZXJzOiAgIGFwcGVuZCgkc3BlYy1ib3JkZXJzLCAgICRzcGVjLWJvcmRlciwgICBjb21tYSk7XHJcbiAgfVxyXG5cclxuICAtd2Via2l0LWJvcmRlci1pbWFnZTogJHdlYmtpdC1ib3JkZXJzO1xyXG4gICAgICAgICAgYm9yZGVyLWltYWdlOiAkc3BlYy1ib3JkZXJzO1xyXG4gICAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxufVxyXG5cclxuLy9FeGFtcGxlczpcclxuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKHVybChcImltYWdlLnBuZ1wiKSk7XHJcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZSh1cmwoXCJpbWFnZS5wbmdcIikgMjAgc3RyZXRjaCk7XHJcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZShsaW5lYXItZ3JhZGllbnQoNDVkZWcsIG9yYW5nZSwgeWVsbG93KSk7XHJcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZShsaW5lYXItZ3JhZGllbnQoNDVkZWcsIG9yYW5nZSwgeWVsbG93KSBzdHJldGNoKTtcclxuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKGxpbmVhci1ncmFkaWVudCg0NWRlZywgb3JhbmdlLCB5ZWxsb3cpIDIwIDMwIDQwIDUwIHN0cmV0Y2ggcm91bmQpO1xyXG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UocmFkaWFsLWdyYWRpZW50KHRvcCwgY292ZXIsIG9yYW5nZSwgeWVsbG93LCBvcmFuZ2UpKTtcclxuIiwiQG1peGluIGNhbGMoJHByb3BlcnR5LCAkdmFsdWUpIHtcclxuICAjeyRwcm9wZXJ0eX06IC13ZWJraXQtY2FsYygjeyR2YWx1ZX0pO1xyXG4gICN7JHByb3BlcnR5fTogY2FsYygjeyR2YWx1ZX0pO1xyXG59XHJcbiIsIkBtaXhpbiBjb2x1bW5zKCRhcmc6IGF1dG8pIHtcclxuICAvLyA8Y29sdW1uLWNvdW50PiB8fCA8Y29sdW1uLXdpZHRoPlxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbnMsICRhcmcsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBjb2x1bW4tY291bnQoJGludDogYXV0bykge1xyXG4gIC8vIGF1dG8gfHwgaW50ZWdlclxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1jb3VudCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGNvbHVtbi1nYXAoJGxlbmd0aDogbm9ybWFsKSB7XHJcbiAgLy8gbm9ybWFsIHx8IGxlbmd0aFxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1nYXAsICRsZW5ndGgsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBjb2x1bW4tZmlsbCgkYXJnOiBhdXRvKSB7XHJcbiAgLy8gYXV0byB8fCBsZW5ndGhcclxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tZmlsbCwgJGFyZywgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGNvbHVtbi1ydWxlKCRhcmcpIHtcclxuICAvLyA8Ym9yZGVyLXdpZHRoPiB8fCA8Ym9yZGVyLXN0eWxlPiB8fCA8Y29sb3I+XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXJ1bGUsICRhcmcsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBjb2x1bW4tcnVsZS1jb2xvcigkY29sb3IpIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tcnVsZS1jb2xvciwgJGNvbG9yLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gY29sdW1uLXJ1bGUtc3R5bGUoJHN0eWxlOiBub25lKSB7XHJcbiAgLy8gbm9uZSB8IGhpZGRlbiB8IGRhc2hlZCB8IGRvdHRlZCB8IGRvdWJsZSB8IGdyb292ZSB8IGluc2V0IHwgaW5zZXQgfCBvdXRzZXQgfCByaWRnZSB8IHNvbGlkXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXJ1bGUtc3R5bGUsICRzdHlsZSwgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGNvbHVtbi1ydWxlLXdpZHRoICgkd2lkdGg6IG5vbmUpIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tcnVsZS13aWR0aCwgJHdpZHRoLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gY29sdW1uLXNwYW4oJGFyZzogbm9uZSkge1xyXG4gIC8vIG5vbmUgfHwgYWxsXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXNwYW4sICRhcmcsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBjb2x1bW4td2lkdGgoJGxlbmd0aDogYXV0bykge1xyXG4gIC8vIGF1dG8gfHwgbGVuZ3RoXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXdpZHRoLCAkbGVuZ3RoLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcbiIsIkBtaXhpbiBmaWx0ZXIoJGZ1bmN0aW9uOiBub25lKSB7XHJcbiAgLy8gPGZpbHRlci1mdW5jdGlvbj4gWzxmaWx0ZXItZnVuY3Rpb25dKiB8IG5vbmVcclxuICBAaW5jbHVkZSBwcmVmaXhlcihmaWx0ZXIsICRmdW5jdGlvbiwgd2Via2l0IHNwZWMpO1xyXG59XHJcbiIsIi8vIENTUzMgRmxleGlibGUgQm94IE1vZGVsIGFuZCBwcm9wZXJ0eSBkZWZhdWx0c1xyXG5cclxuLy8gQ3VzdG9tIHNob3J0aGFuZCBub3RhdGlvbiBmb3IgZmxleGJveFxyXG5AbWl4aW4gYm94KCRvcmllbnQ6IGlubGluZS1heGlzLCAkcGFjazogc3RhcnQsICRhbGlnbjogc3RyZXRjaCkge1xyXG4gIEBpbmNsdWRlIGRpc3BsYXktYm94O1xyXG4gIEBpbmNsdWRlIGJveC1vcmllbnQoJG9yaWVudCk7XHJcbiAgQGluY2x1ZGUgYm94LXBhY2soJHBhY2spO1xyXG4gIEBpbmNsdWRlIGJveC1hbGlnbigkYWxpZ24pO1xyXG59XHJcblxyXG5AbWl4aW4gZGlzcGxheS1ib3gge1xyXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xyXG4gIGRpc3BsYXk6IC1tb3otYm94O1xyXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94OyAvLyBJRSAxMFxyXG4gIGRpc3BsYXk6IGJveDtcclxufVxyXG5cclxuQG1peGluIGJveC1vcmllbnQoJG9yaWVudDogaW5saW5lLWF4aXMpIHtcclxuLy8gaG9yaXpvbnRhbHx2ZXJ0aWNhbHxpbmxpbmUtYXhpc3xibG9jay1heGlzfGluaGVyaXRcclxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JpZW50LCAkb3JpZW50LCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gYm94LXBhY2soJHBhY2s6IHN0YXJ0KSB7XHJcbi8vIHN0YXJ0fGVuZHxjZW50ZXJ8anVzdGlmeVxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1wYWNrLCAkcGFjaywgd2Via2l0IG1veiBzcGVjKTtcclxuICAtbXMtZmxleC1wYWNrOiAkcGFjazsgLy8gSUUgMTBcclxufVxyXG5cclxuQG1peGluIGJveC1hbGlnbigkYWxpZ246IHN0cmV0Y2gpIHtcclxuLy8gc3RhcnR8ZW5kfGNlbnRlcnxiYXNlbGluZXxzdHJldGNoXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWFsaWduLCAkYWxpZ24sIHdlYmtpdCBtb3ogc3BlYyk7XHJcbiAgLW1zLWZsZXgtYWxpZ246ICRhbGlnbjsgLy8gSUUgMTBcclxufVxyXG5cclxuQG1peGluIGJveC1kaXJlY3Rpb24oJGRpcmVjdGlvbjogbm9ybWFsKSB7XHJcbi8vIG5vcm1hbHxyZXZlcnNlfGluaGVyaXRcclxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZGlyZWN0aW9uLCAkZGlyZWN0aW9uLCB3ZWJraXQgbW96IHNwZWMpO1xyXG4gIC1tcy1mbGV4LWRpcmVjdGlvbjogJGRpcmVjdGlvbjsgLy8gSUUgMTBcclxufVxyXG5cclxuQG1peGluIGJveC1saW5lcygkbGluZXM6IHNpbmdsZSkge1xyXG4vLyBzaW5nbGV8bXVsdGlwbGVcclxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtbGluZXMsICRsaW5lcywgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGJveC1vcmRpbmFsLWdyb3VwKCRpbnQ6IDEpIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JkaW5hbC1ncm91cCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcclxuICAtbXMtZmxleC1vcmRlcjogJGludDsgLy8gSUUgMTBcclxufVxyXG5cclxuQG1peGluIGJveC1mbGV4KCR2YWx1ZTogMCkge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1mbGV4LCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbiAgLW1zLWZsZXg6ICR2YWx1ZTsgLy8gSUUgMTBcclxufVxyXG5cclxuQG1peGluIGJveC1mbGV4LWdyb3VwKCRpbnQ6IDEpIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZmxleC1ncm91cCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuLy8gQ1NTMyBGbGV4aWJsZSBCb3ggTW9kZWwgYW5kIHByb3BlcnR5IGRlZmF1bHRzXHJcbi8vIFVuaWZpZWQgYXR0cmlidXRlcyBmb3IgMjAwOSwgMjAxMSwgYW5kIDIwMTIgZmxhdm91cnMuXHJcblxyXG4vLyAyMDA5IC0gZGlzcGxheSAoYm94IHwgaW5saW5lLWJveClcclxuLy8gMjAxMSAtIGRpc3BsYXkgKGZsZXhib3ggfCBpbmxpbmUtZmxleGJveClcclxuLy8gMjAxMiAtIGRpc3BsYXkgKGZsZXggfCBpbmxpbmUtZmxleClcclxuQG1peGluIGRpc3BsYXkoJHZhbHVlKSB7XHJcbi8vIGZsZXggfCBpbmxpbmUtZmxleFxyXG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4XCIge1xyXG4gICAgLy8gMjAwOVxyXG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XHJcbiAgICBkaXNwbGF5OiAtbW96LWJveDtcclxuICAgIGRpc3BsYXk6IGJveDtcclxuXHJcbiAgICAvLyAyMDEyXHJcbiAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XHJcbiAgICBkaXNwbGF5OiAtbW96LWZsZXg7XHJcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDsgLy8gMjAxMSAoSUUgMTApXHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiaW5saW5lLWZsZXhcIiB7XHJcbiAgICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1ib3g7XHJcbiAgICBkaXNwbGF5OiAtbW96LWlubGluZS1ib3g7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYm94O1xyXG5cclxuICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWZsZXg7XHJcbiAgICBkaXNwbGF5OiAtbW96LWlubGluZS1mbGV4O1xyXG4gICAgZGlzcGxheTogLW1zLWlubGluZS1mbGV4Ym94O1xyXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XHJcbiAgfSBAZWxzZSB7XHJcbiAgICBkaXNwbGF5OiAkdmFsdWU7XHJcbiAgfVxyXG59XHJcblxyXG4vLyAyMDA5IC0gYm94LWZsZXggKGludGVnZXIpXHJcbi8vIDIwMTEgLSBmbGV4IChkZWNpbWFsIHwgd2lkdGggZGVjaW1hbClcclxuLy8gMjAxMiAtIGZsZXggKGludGVnZXIgaW50ZWdlciB3aWR0aClcclxuQG1peGluIGZsZXgoJHZhbHVlKSB7XHJcblxyXG4gIC8vIEdyYWIgZmxleC1ncm93IGZvciBvbGRlciBicm93c2Vycy5cclxuICAkZmxleC1ncm93OiBudGgoJHZhbHVlLCAxKTtcclxuXHJcbiAgLy8gMjAwOVxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1mbGV4LCAkZmxleC1ncm93LCB3ZWJraXQgbW96IHNwZWMpO1xyXG5cclxuICAvLyAyMDExIChJRSAxMCksIDIwMTJcclxuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgc3BlYyk7XHJcbn1cclxuXHJcbi8vIDIwMDkgLSBib3gtb3JpZW50ICggaG9yaXpvbnRhbCB8IHZlcnRpY2FsIHwgaW5saW5lLWF4aXMgfCBibG9jay1heGlzKVxyXG4vLyAgICAgIC0gYm94LWRpcmVjdGlvbiAobm9ybWFsIHwgcmV2ZXJzZSlcclxuLy8gMjAxMSAtIGZsZXgtZGlyZWN0aW9uIChyb3cgfCByb3ctcmV2ZXJzZSB8IGNvbHVtbiB8IGNvbHVtbi1yZXZlcnNlKVxyXG4vLyAyMDEyIC0gZmxleC1kaXJlY3Rpb24gKHJvdyB8IHJvdy1yZXZlcnNlIHwgY29sdW1uIHwgY29sdW1uLXJldmVyc2UpXHJcbkBtaXhpbiBmbGV4LWRpcmVjdGlvbigkdmFsdWU6IHJvdykge1xyXG5cclxuICAvLyBBbHQgdmFsdWVzLlxyXG4gICR2YWx1ZS0yMDA5OiAkdmFsdWU7XHJcbiAgJHZhbHVlLTIwMTE6ICR2YWx1ZTtcclxuICAkZGlyZWN0aW9uOiBub3JtYWw7XHJcblxyXG4gIEBpZiAkdmFsdWUgPT0gcm93IHtcclxuICAgICR2YWx1ZS0yMDA5OiBob3Jpem9udGFsO1xyXG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwicm93LXJldmVyc2VcIiB7XHJcbiAgICAkdmFsdWUtMjAwOTogaG9yaXpvbnRhbDtcclxuICAgICRkaXJlY3Rpb246IHJldmVyc2U7XHJcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gY29sdW1uIHtcclxuICAgICR2YWx1ZS0yMDA5OiB2ZXJ0aWNhbDtcclxuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImNvbHVtbi1yZXZlcnNlXCIge1xyXG4gICAgJHZhbHVlLTIwMDk6IHZlcnRpY2FsO1xyXG4gICAgJGRpcmVjdGlvbjogcmV2ZXJzZTtcclxuICB9XHJcblxyXG4gIC8vIDIwMDlcclxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JpZW50LCAkdmFsdWUtMjAwOSwgd2Via2l0IG1veiBzcGVjKTtcclxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZGlyZWN0aW9uLCAkZGlyZWN0aW9uLCB3ZWJraXQgbW96IHNwZWMpO1xyXG5cclxuICAvLyAyMDEyXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1kaXJlY3Rpb24sICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcclxuXHJcbiAgLy8gMjAxMSAoSUUgMTApXHJcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XHJcbn1cclxuXHJcbi8vIDIwMDkgLSBib3gtbGluZXMgKHNpbmdsZSB8IG11bHRpcGxlKVxyXG4vLyAyMDExIC0gZmxleC13cmFwIChub3dyYXAgfCB3cmFwIHwgd3JhcC1yZXZlcnNlKVxyXG4vLyAyMDEyIC0gZmxleC13cmFwIChub3dyYXAgfCB3cmFwIHwgd3JhcC1yZXZlcnNlKVxyXG5AbWl4aW4gZmxleC13cmFwKCR2YWx1ZTogbm93cmFwKSB7XHJcbiAgLy8gQWx0IHZhbHVlc1xyXG4gICRhbHQtdmFsdWU6ICR2YWx1ZTtcclxuICBAaWYgJHZhbHVlID09IG5vd3JhcCB7XHJcbiAgICAkYWx0LXZhbHVlOiBzaW5nbGU7XHJcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gd3JhcCB7XHJcbiAgICAkYWx0LXZhbHVlOiBtdWx0aXBsZTtcclxuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcIndyYXAtcmV2ZXJzZVwiIHtcclxuICAgICRhbHQtdmFsdWU6IG11bHRpcGxlO1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWxpbmVzLCAkYWx0LXZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtd3JhcCwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xyXG59XHJcblxyXG4vLyAyMDA5IC0gVE9ETzogcGFyc2UgdmFsdWVzIGludG8gZmxleC1kaXJlY3Rpb24vZmxleC13cmFwXHJcbi8vIDIwMTEgLSBUT0RPOiBwYXJzZSB2YWx1ZXMgaW50byBmbGV4LWRpcmVjdGlvbi9mbGV4LXdyYXBcclxuLy8gMjAxMiAtIGZsZXgtZmxvdyAoZmxleC1kaXJlY3Rpb24gfHwgZmxleC13cmFwKVxyXG5AbWl4aW4gZmxleC1mbG93KCR2YWx1ZSkge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtZmxvdywgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG4vLyAyMDA5IC0gYm94LW9yZGluYWwtZ3JvdXAgKGludGVnZXIpXHJcbi8vIDIwMTEgLSBmbGV4LW9yZGVyIChpbnRlZ2VyKVxyXG4vLyAyMDEyIC0gb3JkZXIgKGludGVnZXIpXHJcbkBtaXhpbiBvcmRlcigkaW50OiAwKSB7XHJcbiAgLy8gMjAwOVxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmRpbmFsLWdyb3VwLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xyXG5cclxuICAvLyAyMDEyXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIob3JkZXIsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XHJcblxyXG4gIC8vIDIwMTEgKElFIDEwKVxyXG4gIC1tcy1mbGV4LW9yZGVyOiAkaW50O1xyXG59XHJcblxyXG4vLyAyMDEyIC0gZmxleC1ncm93IChudW1iZXIpXHJcbkBtaXhpbiBmbGV4LWdyb3coJG51bWJlcjogMCkge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtZ3JvdywgJG51bWJlciwgd2Via2l0IG1veiBzcGVjKTtcclxuICAtbXMtZmxleC1wb3NpdGl2ZTogJG51bWJlcjtcclxufVxyXG5cclxuLy8gMjAxMiAtIGZsZXgtc2hyaW5rIChudW1iZXIpXHJcbkBtaXhpbiBmbGV4LXNocmluaygkbnVtYmVyOiAxKSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1zaHJpbmssICRudW1iZXIsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbiAgLW1zLWZsZXgtbmVnYXRpdmU6ICRudW1iZXI7XHJcbn1cclxuXHJcbi8vIDIwMTIgLSBmbGV4LWJhc2lzIChudW1iZXIpXHJcbkBtaXhpbiBmbGV4LWJhc2lzKCR3aWR0aDogYXV0bykge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtYmFzaXMsICR3aWR0aCwgd2Via2l0IG1veiBzcGVjKTtcclxuICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogJHdpZHRoO1xyXG59XHJcblxyXG4vLyAyMDA5IC0gYm94LXBhY2sgKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwganVzdGlmeSlcclxuLy8gMjAxMSAtIGZsZXgtcGFjayAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBqdXN0aWZ5KVxyXG4vLyAyMDEyIC0ganVzdGlmeS1jb250ZW50IChmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBzcGFjZS1iZXR3ZWVuIHwgc3BhY2UtYXJvdW5kKVxyXG5AbWl4aW4ganVzdGlmeS1jb250ZW50KCR2YWx1ZTogZmxleC1zdGFydCkge1xyXG5cclxuICAvLyBBbHQgdmFsdWVzLlxyXG4gICRhbHQtdmFsdWU6ICR2YWx1ZTtcclxuICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcclxuICAgICRhbHQtdmFsdWU6IHN0YXJ0O1xyXG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XHJcbiAgICAkYWx0LXZhbHVlOiBlbmQ7XHJcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJzcGFjZS1iZXR3ZWVuXCIge1xyXG4gICAgJGFsdC12YWx1ZToganVzdGlmeTtcclxuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInNwYWNlLWFyb3VuZFwiIHtcclxuICAgICRhbHQtdmFsdWU6IGRpc3RyaWJ1dGU7XHJcbiAgfVxyXG5cclxuICAvLyAyMDA5XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LXBhY2ssICRhbHQtdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XHJcblxyXG4gIC8vIDIwMTJcclxuICBAaW5jbHVkZSBwcmVmaXhlcihqdXN0aWZ5LWNvbnRlbnQsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xyXG5cclxuICAvLyAyMDExIChJRSAxMClcclxuICAtbXMtZmxleC1wYWNrOiAkYWx0LXZhbHVlO1xyXG59XHJcblxyXG4vLyAyMDA5IC0gYm94LWFsaWduIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcclxuLy8gMjAxMSAtIGZsZXgtYWxpZ24gKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxyXG4vLyAyMDEyIC0gYWxpZ24taXRlbXMgKGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcclxuQG1peGluIGFsaWduLWl0ZW1zKCR2YWx1ZTogc3RyZXRjaCkge1xyXG5cclxuICAkYWx0LXZhbHVlOiAkdmFsdWU7XHJcblxyXG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xyXG4gICAgJGFsdC12YWx1ZTogc3RhcnQ7XHJcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcclxuICAgICRhbHQtdmFsdWU6IGVuZDtcclxuICB9XHJcblxyXG4gIC8vIDIwMDlcclxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtYWxpZ24sICRhbHQtdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XHJcblxyXG4gIC8vIDIwMTJcclxuICBAaW5jbHVkZSBwcmVmaXhlcihhbGlnbi1pdGVtcywgJHZhbHVlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XHJcblxyXG4gIC8vIDIwMTEgKElFIDEwKVxyXG4gIC1tcy1mbGV4LWFsaWduOiAkYWx0LXZhbHVlO1xyXG59XHJcblxyXG4vLyAyMDExIC0gZmxleC1pdGVtLWFsaWduIChhdXRvIHwgc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXHJcbi8vIDIwMTIgLSBhbGlnbi1zZWxmIChhdXRvIHwgZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxyXG5AbWl4aW4gYWxpZ24tc2VsZigkdmFsdWU6IGF1dG8pIHtcclxuXHJcbiAgJHZhbHVlLTIwMTE6ICR2YWx1ZTtcclxuICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcclxuICAgICR2YWx1ZS0yMDExOiBzdGFydDtcclxuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImZsZXgtZW5kXCIge1xyXG4gICAgJHZhbHVlLTIwMTE6IGVuZDtcclxuICB9XHJcblxyXG4gIC8vIDIwMTJcclxuICBAaW5jbHVkZSBwcmVmaXhlcihhbGlnbi1zZWxmLCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XHJcblxyXG4gIC8vIDIwMTEgKElFIDEwKVxyXG4gIC1tcy1mbGV4LWl0ZW0tYWxpZ246ICR2YWx1ZS0yMDExO1xyXG59XHJcblxyXG4vLyAyMDExIC0gZmxleC1saW5lLXBhY2sgKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwganVzdGlmeSB8IGRpc3RyaWJ1dGUgfCBzdHJldGNoKVxyXG4vLyAyMDEyIC0gYWxpZ24tY29udGVudCAoZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgc3BhY2UtYmV0d2VlbiB8IHNwYWNlLWFyb3VuZCB8IHN0cmV0Y2gpXHJcbkBtaXhpbiBhbGlnbi1jb250ZW50KCR2YWx1ZTogc3RyZXRjaCkge1xyXG5cclxuICAkdmFsdWUtMjAxMTogJHZhbHVlO1xyXG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xyXG4gICAgJHZhbHVlLTIwMTE6IHN0YXJ0O1xyXG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XHJcbiAgICAkdmFsdWUtMjAxMTogZW5kO1xyXG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwic3BhY2UtYmV0d2VlblwiIHtcclxuICAgICR2YWx1ZS0yMDExOiBqdXN0aWZ5O1xyXG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwic3BhY2UtYXJvdW5kXCIge1xyXG4gICAgJHZhbHVlLTIwMTE6IGRpc3RyaWJ1dGU7XHJcbiAgfVxyXG5cclxuICAvLyAyMDEyXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYWxpZ24tY29udGVudCwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xyXG5cclxuICAvLyAyMDExIChJRSAxMClcclxuICAtbXMtZmxleC1saW5lLXBhY2s6ICR2YWx1ZS0yMDExO1xyXG59XHJcbiIsIkBtaXhpbiBmb250LWZhY2UoXHJcbiAgJGZvbnQtZmFtaWx5LFxyXG4gICRmaWxlLXBhdGgsXHJcbiAgJHdlaWdodDogbm9ybWFsLFxyXG4gICRzdHlsZTogbm9ybWFsLFxyXG4gICRhc3NldC1waXBlbGluZTogJGFzc2V0LXBpcGVsaW5lLFxyXG4gICRmaWxlLWZvcm1hdHM6IGVvdCB3b2ZmMiB3b2ZmIHR0ZiBzdmcpIHtcclxuXHJcbiAgJGZvbnQtdXJsLXByZWZpeDogZm9udC11cmwtcHJlZml4ZXIoJGFzc2V0LXBpcGVsaW5lKTtcclxuXHJcbiAgQGZvbnQtZmFjZSB7XHJcbiAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5O1xyXG4gICAgZm9udC1zdHlsZTogJHN0eWxlO1xyXG4gICAgZm9udC13ZWlnaHQ6ICR3ZWlnaHQ7XHJcblxyXG4gICAgc3JjOiBmb250LXNvdXJjZS1kZWNsYXJhdGlvbihcclxuICAgICAgJGZvbnQtZmFtaWx5LFxyXG4gICAgICAkZmlsZS1wYXRoLFxyXG4gICAgICAkYXNzZXQtcGlwZWxpbmUsXHJcbiAgICAgICRmaWxlLWZvcm1hdHMsXHJcbiAgICAgICRmb250LXVybC1wcmVmaXhcclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiIsIkBtaXhpbiBmb250LWZlYXR1cmUtc2V0dGluZ3MoJHNldHRpbmdzLi4uKSB7XHJcbiAgQGlmIGxlbmd0aCgkc2V0dGluZ3MpID09IDAgeyAkc2V0dGluZ3M6IG5vbmU7IH1cclxuICBAaW5jbHVkZSBwcmVmaXhlcihmb250LWZlYXR1cmUtc2V0dGluZ3MsICRzZXR0aW5ncywgd2Via2l0IG1veiBtcyBzcGVjKTtcclxufVxyXG4iLCIvLyBIaURQSSBtaXhpbi4gRGVmYXVsdCB2YWx1ZSBzZXQgdG8gMS4zIHRvIHRhcmdldCBHb29nbGUgTmV4dXMgNyAoaHR0cDovL2JqYW5nby5jb20vYXJ0aWNsZXMvbWluLWRldmljZS1waXhlbC1yYXRpby8pXHJcbkBtaXhpbiBoaWRwaSgkcmF0aW86IDEuMykge1xyXG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogJHJhdGlvKSxcclxuICBvbmx5IHNjcmVlbiBhbmQgKG1pbi0tbW96LWRldmljZS1waXhlbC1yYXRpbzogJHJhdGlvKSxcclxuICBvbmx5IHNjcmVlbiBhbmQgKC1vLW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86ICN7JHJhdGlvfS8xKSxcclxuICBvbmx5IHNjcmVlbiBhbmQgKG1pbi1yZXNvbHV0aW9uOiByb3VuZCgkcmF0aW8gKiA5NmRwaSkpLFxyXG4gIG9ubHkgc2NyZWVuIGFuZCAobWluLXJlc29sdXRpb246ICRyYXRpbyAqIDFkcHB4KSB7XHJcbiAgICBAY29udGVudDtcclxuICB9XHJcbn1cclxuIiwiQG1peGluIGh5cGhlbnMoJGh5cGhlbmF0aW9uOiBub25lKSB7XHJcbiAgLy8gbm9uZSB8IG1hbnVhbCB8IGF1dG9cclxuICBAaW5jbHVkZSBwcmVmaXhlcihoeXBoZW5zLCAkaHlwaGVuYXRpb24sIHdlYmtpdCBtb3ogbXMgc3BlYyk7XHJcbn1cclxuIiwiQG1peGluIGltYWdlLXJlbmRlcmluZyAoJG1vZGU6YXV0bykge1xyXG5cclxuICBAaWYgKCRtb2RlID09IGNyaXNwLWVkZ2VzKSB7XHJcbiAgICAtbXMtaW50ZXJwb2xhdGlvbi1tb2RlOiBuZWFyZXN0LW5laWdoYm9yOyAvLyBJRTgrXHJcbiAgICBpbWFnZS1yZW5kZXJpbmc6IC1tb3otY3Jpc3AtZWRnZXM7XHJcbiAgICBpbWFnZS1yZW5kZXJpbmc6IC1vLWNyaXNwLWVkZ2VzO1xyXG4gICAgaW1hZ2UtcmVuZGVyaW5nOiAtd2Via2l0LW9wdGltaXplLWNvbnRyYXN0O1xyXG4gICAgaW1hZ2UtcmVuZGVyaW5nOiBjcmlzcC1lZGdlcztcclxuICB9XHJcblxyXG4gIEBlbHNlIHtcclxuICAgIGltYWdlLXJlbmRlcmluZzogJG1vZGU7XHJcbiAgfVxyXG59XHJcbiIsIi8vIEFkZHMga2V5ZnJhbWVzIGJsb2NrcyBmb3Igc3VwcG9ydGVkIHByZWZpeGVzLCByZW1vdmluZyByZWR1bmRhbnQgcHJlZml4ZXMgaW4gdGhlIGJsb2NrJ3MgY29udGVudFxyXG5AbWl4aW4ga2V5ZnJhbWVzKCRuYW1lKSB7XHJcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3Itd2Via2l0OiAgICAkcHJlZml4LWZvci13ZWJraXQ7XHJcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3ItbW96aWxsYTogICAkcHJlZml4LWZvci1tb3ppbGxhO1xyXG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1pY3Jvc29mdDogJHByZWZpeC1mb3ItbWljcm9zb2Z0O1xyXG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLW9wZXJhOiAgICAgJHByZWZpeC1mb3Itb3BlcmE7XHJcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3Itc3BlYzogICAgICAkcHJlZml4LWZvci1zcGVjO1xyXG5cclxuICBAaWYgJG9yaWdpbmFsLXByZWZpeC1mb3Itd2Via2l0IHtcclxuICAgIEBpbmNsdWRlIGRpc2FibGUtcHJlZml4LWZvci1hbGwoKTtcclxuICAgICRwcmVmaXgtZm9yLXdlYmtpdDogdHJ1ZSAhZ2xvYmFsO1xyXG4gICAgQC13ZWJraXQta2V5ZnJhbWVzICN7JG5hbWV9IHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAaWYgJG9yaWdpbmFsLXByZWZpeC1mb3ItbW96aWxsYSB7XHJcbiAgICBAaW5jbHVkZSBkaXNhYmxlLXByZWZpeC1mb3ItYWxsKCk7XHJcbiAgICAkcHJlZml4LWZvci1tb3ppbGxhOiB0cnVlICFnbG9iYWw7XHJcbiAgICBALW1vei1rZXlmcmFtZXMgI3skbmFtZX0ge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICRwcmVmaXgtZm9yLXdlYmtpdDogICAgJG9yaWdpbmFsLXByZWZpeC1mb3Itd2Via2l0ICAgICFnbG9iYWw7XHJcbiAgJHByZWZpeC1mb3ItbW96aWxsYTogICAkb3JpZ2luYWwtcHJlZml4LWZvci1tb3ppbGxhICAgIWdsb2JhbDtcclxuICAkcHJlZml4LWZvci1taWNyb3NvZnQ6ICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1pY3Jvc29mdCAhZ2xvYmFsO1xyXG4gICRwcmVmaXgtZm9yLW9wZXJhOiAgICAgJG9yaWdpbmFsLXByZWZpeC1mb3Itb3BlcmEgICAgICFnbG9iYWw7XHJcbiAgJHByZWZpeC1mb3Itc3BlYzogICAgICAkb3JpZ2luYWwtcHJlZml4LWZvci1zcGVjICAgICAgIWdsb2JhbDtcclxuXHJcbiAgQGlmICRvcmlnaW5hbC1wcmVmaXgtZm9yLXNwZWMge1xyXG4gICAgQGtleWZyYW1lcyAjeyRuYW1lfSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCJAbWl4aW4gbGluZWFyLWdyYWRpZW50KCRwb3MsICRnMSwgJGcyOiBudWxsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICRnMzogbnVsbCwgJGc0OiBudWxsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICRnNTogbnVsbCwgJGc2OiBudWxsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICRnNzogbnVsbCwgJGc4OiBudWxsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICRnOTogbnVsbCwgJGcxMDogbnVsbCxcclxuICAgICAgICAgICAgICAgICAgICAgICAkZmFsbGJhY2s6IG51bGwpIHtcclxuICAvLyBEZXRlY3Qgd2hhdCB0eXBlIG9mIHZhbHVlIGV4aXN0cyBpbiAkcG9zXHJcbiAgJHBvcy10eXBlOiB0eXBlLW9mKG50aCgkcG9zLCAxKSk7XHJcbiAgJHBvcy1zcGVjOiBudWxsO1xyXG4gICRwb3MtZGVncmVlOiBudWxsO1xyXG5cclxuICAvLyBJZiAkcG9zIGlzIG1pc3NpbmcgZnJvbSBtaXhpbiwgcmVhc3NpZ24gdmFycyBhbmQgYWRkIGRlZmF1bHQgcG9zaXRpb25cclxuICBAaWYgKCRwb3MtdHlwZSA9PSBjb2xvcikgb3IgKG50aCgkcG9zLCAxKSA9PSBcInRyYW5zcGFyZW50XCIpICB7XHJcbiAgICAkZzEwOiAkZzk7ICRnOTogJGc4OyAkZzg6ICRnNzsgJGc3OiAkZzY7ICRnNjogJGc1O1xyXG4gICAgJGc1OiAkZzQ7ICRnNDogJGczOyAkZzM6ICRnMjsgJGcyOiAkZzE7ICRnMTogJHBvcztcclxuICAgICRwb3M6IG51bGw7XHJcbiAgfVxyXG5cclxuICBAaWYgJHBvcyB7XHJcbiAgICAkcG9zaXRpb25zOiBfbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIoJHBvcyk7XHJcbiAgICAkcG9zLWRlZ3JlZTogbnRoKCRwb3NpdGlvbnMsIDEpO1xyXG4gICAgJHBvcy1zcGVjOiAgIG50aCgkcG9zaXRpb25zLCAyKTtcclxuICB9XHJcblxyXG4gICRmdWxsOiAkZzEsICRnMiwgJGczLCAkZzQsICRnNSwgJGc2LCAkZzcsICRnOCwgJGc5LCAkZzEwO1xyXG5cclxuICAvLyBTZXQgJGcxIGFzIHRoZSBkZWZhdWx0IGZhbGxiYWNrIGNvbG9yXHJcbiAgJGZhbGxiYWNrLWNvbG9yOiBudGgoJGcxLCAxKTtcclxuXHJcbiAgLy8gSWYgJGZhbGxiYWNrIGlzIGEgY29sb3IgdXNlIHRoYXQgY29sb3IgYXMgdGhlIGZhbGxiYWNrIGNvbG9yXHJcbiAgQGlmICh0eXBlLW9mKCRmYWxsYmFjaykgPT0gY29sb3IpIG9yICgkZmFsbGJhY2sgPT0gXCJ0cmFuc3BhcmVudFwiKSB7XHJcbiAgICAkZmFsbGJhY2stY29sb3I6ICRmYWxsYmFjaztcclxuICB9XHJcblxyXG4gIGJhY2tncm91bmQtY29sb3I6ICRmYWxsYmFjay1jb2xvcjtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCgkcG9zLWRlZ3JlZSAkZnVsbCk7IC8vIFNhZmFyaSA1LjErLCBDaHJvbWVcclxuICBiYWNrZ3JvdW5kLWltYWdlOiB1bnF1b3RlKFwibGluZWFyLWdyYWRpZW50KCN7JHBvcy1zcGVjfSN7JGZ1bGx9KVwiKTtcclxufVxyXG4iLCJAbWl4aW4gcGVyc3BlY3RpdmUoJGRlcHRoOiBub25lKSB7XHJcbiAgLy8gbm9uZSB8IDxsZW5ndGg+XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIocGVyc3BlY3RpdmUsICRkZXB0aCwgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIHBlcnNwZWN0aXZlLW9yaWdpbigkdmFsdWU6IDUwJSA1MCUpIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcihwZXJzcGVjdGl2ZS1vcmlnaW4sICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG4iLCJAbWl4aW4gcGxhY2Vob2xkZXIge1xyXG4gICRwbGFjZWhvbGRlcnM6IFwiOi13ZWJraXQtaW5wdXRcIiBcIjotbW96XCIgXCItbW96XCIgXCItbXMtaW5wdXRcIjtcclxuICBAZWFjaCAkcGxhY2Vob2xkZXIgaW4gJHBsYWNlaG9sZGVycyB7XHJcbiAgICAmOiN7JHBsYWNlaG9sZGVyfS1wbGFjZWhvbGRlciB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIvLyBSZXF1aXJlcyBTYXNzIDMuMStcclxuQG1peGluIHJhZGlhbC1ncmFkaWVudCgkZzEsICRnMixcclxuICAgICAgICAgICAgICAgICAgICAgICAkZzM6IG51bGwsICRnNDogbnVsbCxcclxuICAgICAgICAgICAgICAgICAgICAgICAkZzU6IG51bGwsICRnNjogbnVsbCxcclxuICAgICAgICAgICAgICAgICAgICAgICAkZzc6IG51bGwsICRnODogbnVsbCxcclxuICAgICAgICAgICAgICAgICAgICAgICAkZzk6IG51bGwsICRnMTA6IG51bGwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgJHBvczogbnVsbCxcclxuICAgICAgICAgICAgICAgICAgICAgICAkc2hhcGUtc2l6ZTogbnVsbCxcclxuICAgICAgICAgICAgICAgICAgICAgICAkZmFsbGJhY2s6IG51bGwpIHtcclxuXHJcbiAgJGRhdGE6IF9yYWRpYWwtYXJnLXBhcnNlcigkZzEsICRnMiwgJHBvcywgJHNoYXBlLXNpemUpO1xyXG4gICRnMTogIG50aCgkZGF0YSwgMSk7XHJcbiAgJGcyOiAgbnRoKCRkYXRhLCAyKTtcclxuICAkcG9zOiBudGgoJGRhdGEsIDMpO1xyXG4gICRzaGFwZS1zaXplOiBudGgoJGRhdGEsIDQpO1xyXG5cclxuICAkZnVsbDogJGcxLCAkZzIsICRnMywgJGc0LCAkZzUsICRnNiwgJGc3LCAkZzgsICRnOSwgJGcxMDtcclxuXHJcbiAgLy8gU3RyaXAgZGVwcmVjYXRlZCBjb3Zlci9jb250YWluIGZvciBzcGVjXHJcbiAgJHNoYXBlLXNpemUtc3BlYzogX3NoYXBlLXNpemUtc3RyaXBwZXIoJHNoYXBlLXNpemUpO1xyXG5cclxuICAvLyBTZXQgJGcxIGFzIHRoZSBkZWZhdWx0IGZhbGxiYWNrIGNvbG9yXHJcbiAgJGZpcnN0LWNvbG9yOiBudGgoJGZ1bGwsIDEpO1xyXG4gICRmYWxsYmFjay1jb2xvcjogbnRoKCRmaXJzdC1jb2xvciwgMSk7XHJcblxyXG4gIEBpZiAodHlwZS1vZigkZmFsbGJhY2spID09IGNvbG9yKSBvciAoJGZhbGxiYWNrID09IFwidHJhbnNwYXJlbnRcIikge1xyXG4gICAgJGZhbGxiYWNrLWNvbG9yOiAkZmFsbGJhY2s7XHJcbiAgfVxyXG5cclxuICAvLyBBZGQgQ29tbWFzIGFuZCBzcGFjZXNcclxuICAkc2hhcGUtc2l6ZTogaWYoJHNoYXBlLXNpemUsIFwiI3skc2hhcGUtc2l6ZX0sIFwiLCBudWxsKTtcclxuICAkcG9zOiAgICAgICAgaWYoJHBvcywgXCIjeyRwb3N9LCBcIiwgbnVsbCk7XHJcbiAgJHBvcy1zcGVjOiAgIGlmKCRwb3MsIFwiYXQgI3skcG9zfVwiLCBudWxsKTtcclxuICAkc2hhcGUtc2l6ZS1zcGVjOiBpZigoJHNoYXBlLXNpemUtc3BlYyAhPSBcIiBcIikgYW5kICgkcG9zID09IG51bGwpLCBcIiN7JHNoYXBlLXNpemUtc3BlY30sIFwiLCBcIiN7JHNoYXBlLXNpemUtc3BlY30gXCIpO1xyXG5cclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAgJGZhbGxiYWNrLWNvbG9yO1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtcmFkaWFsLWdyYWRpZW50KCN7JHBvc30jeyRzaGFwZS1zaXplfSN7JGZ1bGx9KTtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQoI3skc2hhcGUtc2l6ZS1zcGVjfSN7JHBvcy1zcGVjfSN7JGZ1bGx9KTtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gT3V0cHV0cyB0aGUgc3BlYyBhbmQgcHJlZml4ZWQgdmVyc2lvbnMgb2YgdGhlIGA6OnNlbGVjdGlvbmAgcHNldWRvLWVsZW1lbnQuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtCb29sfSAkY3VycmVudC1zZWxlY3RvciBbZmFsc2VdXHJcbi8vLyAgIElmIHNldCB0byBgdHJ1ZWAsIGl0IHRha2VzIHRoZSBjdXJyZW50IGVsZW1lbnQgaW50byBjb25zaWRlcmF0aW9uLlxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgQGluY2x1ZGUgc2VsZWN0aW9uKHRydWUpIHtcclxuLy8vICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmJiNTI7XHJcbi8vLyAgICAgfVxyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICAuZWxlbWVudDo6LW1vei1zZWxlY3Rpb24ge1xyXG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmJiNTI7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyAgIC5lbGVtZW50OjpzZWxlY3Rpb24ge1xyXG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmJiNTI7XHJcbi8vLyAgIH1cclxuXHJcbkBtaXhpbiBzZWxlY3Rpb24oJGN1cnJlbnQtc2VsZWN0b3I6IGZhbHNlKSB7XHJcbiAgQGlmICRjdXJyZW50LXNlbGVjdG9yIHtcclxuICAgICY6Oi1tb3otc2VsZWN0aW9uIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgJjo6c2VsZWN0aW9uIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSB7XHJcbiAgICA6Oi1tb3otc2VsZWN0aW9uIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgOjpzZWxlY3Rpb24ge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiQG1peGluIHRleHQtZGVjb3JhdGlvbigkdmFsdWUpIHtcclxuLy8gPHRleHQtZGVjb3JhdGlvbi1saW5lPiB8fCA8dGV4dC1kZWNvcmF0aW9uLXN0eWxlPiB8fCA8dGV4dC1kZWNvcmF0aW9uLWNvbG9yPlxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRleHQtZGVjb3JhdGlvbiwgJHZhbHVlLCBtb3opO1xyXG59XHJcblxyXG5AbWl4aW4gdGV4dC1kZWNvcmF0aW9uLWxpbmUoJGxpbmU6IG5vbmUpIHtcclxuLy8gbm9uZSB8fCB1bmRlcmxpbmUgfHwgb3ZlcmxpbmUgfHwgbGluZS10aHJvdWdoXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIodGV4dC1kZWNvcmF0aW9uLWxpbmUsICRsaW5lLCBtb3opO1xyXG59XHJcblxyXG5AbWl4aW4gdGV4dC1kZWNvcmF0aW9uLXN0eWxlKCRzdHlsZTogc29saWQpIHtcclxuLy8gc29saWQgfHwgZG91YmxlIHx8IGRvdHRlZCB8fCBkYXNoZWQgfHwgd2F2eVxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRleHQtZGVjb3JhdGlvbi1zdHlsZSwgJHN0eWxlLCBtb3ogd2Via2l0KTtcclxufVxyXG5cclxuQG1peGluIHRleHQtZGVjb3JhdGlvbi1jb2xvcigkY29sb3I6IGN1cnJlbnRDb2xvcikge1xyXG4vLyBjdXJyZW50Q29sb3IgfHwgPGNvbG9yPlxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRleHQtZGVjb3JhdGlvbi1jb2xvciwgJGNvbG9yLCBtb3opO1xyXG59XHJcbiIsIkBtaXhpbiB0cmFuc2Zvcm0oJHByb3BlcnR5OiBub25lKSB7XHJcbiAgLy8gbm9uZSB8IDx0cmFuc2Zvcm0tZnVuY3Rpb24+XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNmb3JtLCAkcHJvcGVydHksIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIHRyYW5zZm9ybS1vcmlnaW4oJGF4ZXM6IDUwJSkge1xyXG4gIC8vIHgtYXhpcyAtIGxlZnQgfCBjZW50ZXIgfCByaWdodCAgfCBsZW5ndGggfCAlXHJcbiAgLy8geS1heGlzIC0gdG9wICB8IGNlbnRlciB8IGJvdHRvbSB8IGxlbmd0aCB8ICVcclxuICAvLyB6LWF4aXMgLSAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNmb3JtLW9yaWdpbiwgJGF4ZXMsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIHRyYW5zZm9ybS1zdHlsZSgkc3R5bGU6IGZsYXQpIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2Zvcm0tc3R5bGUsICRzdHlsZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xyXG59XHJcbiIsIi8vIFNob3J0aGFuZCBtaXhpbi4gU3VwcG9ydHMgbXVsdGlwbGUgcGFyZW50aGVzZXMtZGVsaW1pbmF0ZWQgdmFsdWVzIGZvciBlYWNoIHZhcmlhYmxlLlxyXG4vLyBFeGFtcGxlOiBAaW5jbHVkZSB0cmFuc2l0aW9uIChhbGwgMnMgZWFzZS1pbi1vdXQpO1xyXG4vLyAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uIChvcGFjaXR5IDFzIGVhc2UtaW4gMnMsIHdpZHRoIDJzIGVhc2Utb3V0KTtcclxuLy8gICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1wcm9wZXJ0eSAodHJhbnNmb3JtLCBvcGFjaXR5KTtcclxuXHJcbkBtaXhpbiB0cmFuc2l0aW9uKCRwcm9wZXJ0aWVzLi4uKSB7XHJcbiAgLy8gRml4IGZvciB2ZW5kb3ItcHJlZml4IHRyYW5zZm9ybSBwcm9wZXJ0eVxyXG4gICRuZWVkcy1wcmVmaXhlczogZmFsc2U7XHJcbiAgJHdlYmtpdDogKCk7XHJcbiAgJG1vejogKCk7XHJcbiAgJHNwZWM6ICgpO1xyXG5cclxuICAvLyBDcmVhdGUgbGlzdHMgZm9yIHZlbmRvci1wcmVmaXhlZCB0cmFuc2Zvcm1cclxuICBAZWFjaCAkbGlzdCBpbiAkcHJvcGVydGllcyB7XHJcbiAgICBAaWYgbnRoKCRsaXN0LCAxKSA9PSBcInRyYW5zZm9ybVwiIHtcclxuICAgICAgJG5lZWRzLXByZWZpeGVzOiB0cnVlO1xyXG4gICAgICAkbGlzdDE6IC13ZWJraXQtdHJhbnNmb3JtO1xyXG4gICAgICAkbGlzdDI6IC1tb3otdHJhbnNmb3JtO1xyXG4gICAgICAkbGlzdDM6ICgpO1xyXG5cclxuICAgICAgQGVhY2ggJHZhciBpbiAkbGlzdCB7XHJcbiAgICAgICAgJGxpc3QzOiBqb2luKCRsaXN0MywgJHZhcik7XHJcblxyXG4gICAgICAgIEBpZiAkdmFyICE9IFwidHJhbnNmb3JtXCIge1xyXG4gICAgICAgICAgJGxpc3QxOiBqb2luKCRsaXN0MSwgJHZhcik7XHJcbiAgICAgICAgICAkbGlzdDI6IGpvaW4oJGxpc3QyLCAkdmFyKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICR3ZWJraXQ6IGFwcGVuZCgkd2Via2l0LCAkbGlzdDEpO1xyXG4gICAgICAkbW96OiAgICBhcHBlbmQoJG1veiwgICAgJGxpc3QyKTtcclxuICAgICAgJHNwZWM6ICAgYXBwZW5kKCRzcGVjLCAgICRsaXN0Myk7XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgJHdlYmtpdDogYXBwZW5kKCR3ZWJraXQsICRsaXN0LCBjb21tYSk7XHJcbiAgICAgICRtb3o6ICAgIGFwcGVuZCgkbW96LCAgICAkbGlzdCwgY29tbWEpO1xyXG4gICAgICAkc3BlYzogICBhcHBlbmQoJHNwZWMsICAgJGxpc3QsIGNvbW1hKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBpZiAkbmVlZHMtcHJlZml4ZXMge1xyXG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiAkd2Via2l0O1xyXG4gICAgICAgLW1vei10cmFuc2l0aW9uOiAkbW96O1xyXG4gICAgICAgICAgICB0cmFuc2l0aW9uOiAkc3BlYztcclxuICB9IEBlbHNlIHtcclxuICAgIEBpZiBsZW5ndGgoJHByb3BlcnRpZXMpID49IDEge1xyXG4gICAgICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLCAkcHJvcGVydGllcywgd2Via2l0IG1veiBzcGVjKTtcclxuICAgIH0gQGVsc2Uge1xyXG4gICAgICAkcHJvcGVydGllczogYWxsIDAuMTVzIGVhc2Utb3V0IDBzO1xyXG4gICAgICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLCAkcHJvcGVydGllcywgd2Via2l0IG1veiBzcGVjKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiB0cmFuc2l0aW9uLXByb3BlcnR5KCRwcm9wZXJ0aWVzLi4uKSB7XHJcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCRwcm9wZXJ0aWVzLCBcIndlYmtpdFwiKTtcclxuICAgICAtbW96LXRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoJHByb3BlcnRpZXMsIFwibW96XCIpO1xyXG4gICAgICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcGVydGllcywgZmFsc2UpO1xyXG59XHJcblxyXG5AbWl4aW4gdHJhbnNpdGlvbi1kdXJhdGlvbigkdGltZXMuLi4pIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLWR1cmF0aW9uLCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbigkbW90aW9ucy4uLikge1xyXG4gIC8vIGVhc2UgfCBsaW5lYXIgfCBlYXNlLWluIHwgZWFzZS1vdXQgfCBlYXNlLWluLW91dCB8IGN1YmljLWJlemllcigpXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24sICRtb3Rpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gdHJhbnNpdGlvbi1kZWxheSgkdGltZXMuLi4pIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLWRlbGF5LCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuIiwiQG1peGluIHVzZXItc2VsZWN0KCR2YWx1ZTogbm9uZSkge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKHVzZXItc2VsZWN0LCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgc3BlYyk7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYGJvcmRlci1jb2xvcmAgb24gc3BlY2lmaWMgc2lkZXMgb2YgYSBib3guIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICR2YWxzXHJcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBAaW5jbHVkZSBib3JkZXItY29sb3IoI2E2MGI1NSAjNzZjZDljIG51bGwgI2U4YWUxYSk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBib3JkZXItbGVmdC1jb2xvcjogI2U4YWUxYTtcclxuLy8vICAgICBib3JkZXItcmlnaHQtY29sb3I6ICM3NmNkOWM7XHJcbi8vLyAgICAgYm9yZGVyLXRvcC1jb2xvcjogI2E2MGI1NTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEByZXF1aXJlIHttaXhpbn0gZGlyZWN0aW9uYWwtcHJvcGVydHlcclxuLy8vXHJcbi8vLyBAb3V0cHV0IGBib3JkZXItY29sb3JgXHJcblxyXG5AbWl4aW4gYm9yZGVyLWNvbG9yKCR2YWxzLi4uKSB7XHJcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkoYm9yZGVyLCBjb2xvciwgJHZhbHMuLi4pO1xyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBib3JkZXItcmFkaXVzYCBvbiBib3RoIGNvcm5lcnMgb24gdGhlIHNpZGUgb2YgYSBib3guXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRyYWRpaVxyXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZWxlbWVudC1vbmUge1xyXG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci10b3AtcmFkaXVzKDVweCk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyAgIC5lbGVtZW50LXR3byB7XHJcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLWxlZnQtcmFkaXVzKDNweCk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50LW9uZSB7XHJcbi8vLyAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNXB4O1xyXG4vLy8gICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA1cHg7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyAgIC5lbGVtZW50LXR3byB7XHJcbi8vLyAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogM3B4O1xyXG4vLy8gICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDNweDtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBvdXRwdXQgYGJvcmRlci1yYWRpdXNgXHJcblxyXG5AbWl4aW4gYm9yZGVyLXRvcC1yYWRpdXMoJHJhZGlpKSB7XHJcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJHJhZGlpO1xyXG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkcmFkaWk7XHJcbn1cclxuXHJcbkBtaXhpbiBib3JkZXItcmlnaHQtcmFkaXVzKCRyYWRpaSkge1xyXG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkcmFkaWk7XHJcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRyYWRpaTtcclxufVxyXG5cclxuQG1peGluIGJvcmRlci1ib3R0b20tcmFkaXVzKCRyYWRpaSkge1xyXG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRyYWRpaTtcclxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJHJhZGlpO1xyXG59XHJcblxyXG5AbWl4aW4gYm9yZGVyLWxlZnQtcmFkaXVzKCRyYWRpaSkge1xyXG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRyYWRpaTtcclxuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkcmFkaWk7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYGJvcmRlci1zdHlsZWAgb24gc3BlY2lmaWMgc2lkZXMgb2YgYSBib3guIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICR2YWxzXHJcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBAaW5jbHVkZSBib3JkZXItc3R5bGUoZGFzaGVkIG51bGwgc29saWQpO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XHJcbi8vLyAgICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxyXG4vLy9cclxuLy8vIEBvdXRwdXQgYGJvcmRlci1zdHlsZWBcclxuXHJcbkBtaXhpbiBib3JkZXItc3R5bGUoJHZhbHMuLi4pIHtcclxuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShib3JkZXIsIHN0eWxlLCAkdmFscy4uLik7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYGJvcmRlci13aWR0aGAgb24gc3BlY2lmaWMgc2lkZXMgb2YgYSBib3guIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICR2YWxzXHJcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBAaW5jbHVkZSBib3JkZXItd2lkdGgoMWVtIG51bGwgMjBweCk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAyMHB4O1xyXG4vLy8gICAgIGJvcmRlci10b3Atd2lkdGg6IDFlbTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEByZXF1aXJlIHttaXhpbn0gZGlyZWN0aW9uYWwtcHJvcGVydHlcclxuLy8vXHJcbi8vLyBAb3V0cHV0IGBib3JkZXItd2lkdGhgXHJcblxyXG5AbWl4aW4gYm9yZGVyLXdpZHRoKCR2YWxzLi4uKSB7XHJcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkoYm9yZGVyLCB3aWR0aCwgJHZhbHMuLi4pO1xyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBHZW5lcmF0ZXMgdmFyaWFibGVzIGZvciBhbGwgYnV0dG9ucy4gUGxlYXNlIG5vdGUgdGhhdCB5b3UgbXVzdCB1c2UgaW50ZXJwb2xhdGlvbiBvbiB0aGUgdmFyaWFibGU6IGAjeyRhbGwtYnV0dG9uc31gLlxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAjeyRhbGwtYnV0dG9uc30ge1xyXG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNmMDA7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyAgICN7JGFsbC1idXR0b25zLWZvY3VzfSxcclxuLy8vICAgI3skYWxsLWJ1dHRvbnMtaG92ZXJ9IHtcclxuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGYwO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gICAjeyRhbGwtYnV0dG9ucy1hY3RpdmV9IHtcclxuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBmO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICBidXR0b24sXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJidXR0b25cIl0sXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJyZXNldFwiXSxcclxuLy8vICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XHJcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YwMDtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vICAgYnV0dG9uOmZvY3VzLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdOmZvY3VzLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwicmVzZXRcIl06Zm9jdXMsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl06Zm9jdXMsXHJcbi8vLyAgIGJ1dHRvbjpob3ZlcixcclxuLy8vICAgaW5wdXRbdHlwZT1cImJ1dHRvblwiXTpob3ZlcixcclxuLy8vICAgaW5wdXRbdHlwZT1cInJlc2V0XCJdOmhvdmVyLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwic3VibWl0XCJdOmhvdmVyIHtcclxuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGYwO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gICBidXR0b246YWN0aXZlLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdOmFjdGl2ZSxcclxuLy8vICAgaW5wdXRbdHlwZT1cInJlc2V0XCJdOmFjdGl2ZSxcclxuLy8vICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXTphY3RpdmUge1xyXG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICMwMGY7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAcmVxdWlyZSBhc3NpZ24taW5wdXRzXHJcbi8vL1xyXG4vLy8gQHR5cGUgTGlzdFxyXG4vLy9cclxuLy8vIEB0b2RvIFJlbW92ZSBkb3VibGUgYXNzaWduZWQgdmFyaWFibGVzIChMaW5lcyA1OeKAkzYyKSBpbiB2NS4wLjBcclxuXHJcbiRidXR0b25zLWxpc3Q6ICdidXR0b24nLFxyXG4gICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImJ1dHRvblwiXScsXHJcbiAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwicmVzZXRcIl0nLFxyXG4gICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSc7XHJcblxyXG4kYWxsLWJ1dHRvbnM6ICAgICAgICBhc3NpZ24taW5wdXRzKCRidXR0b25zLWxpc3QpO1xyXG4kYWxsLWJ1dHRvbnMtYWN0aXZlOiBhc3NpZ24taW5wdXRzKCRidXR0b25zLWxpc3QsIGFjdGl2ZSk7XHJcbiRhbGwtYnV0dG9ucy1mb2N1czogIGFzc2lnbi1pbnB1dHMoJGJ1dHRvbnMtbGlzdCwgZm9jdXMpO1xyXG4kYWxsLWJ1dHRvbnMtaG92ZXI6ICBhc3NpZ24taW5wdXRzKCRidXR0b25zLWxpc3QsIGhvdmVyKTtcclxuXHJcbiRhbGwtYnV0dG9uLWlucHV0czogICAgICAgICRhbGwtYnV0dG9ucztcclxuJGFsbC1idXR0b24taW5wdXRzLWFjdGl2ZTogJGFsbC1idXR0b25zLWFjdGl2ZTtcclxuJGFsbC1idXR0b24taW5wdXRzLWZvY3VzOiAgJGFsbC1idXR0b25zLWZvY3VzO1xyXG4kYWxsLWJ1dHRvbi1pbnB1dHMtaG92ZXI6ICAkYWxsLWJ1dHRvbnMtaG92ZXI7XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBQcm92aWRlcyBhbiBlYXN5IHdheSB0byBpbmNsdWRlIGEgY2xlYXJmaXggZm9yIGNvbnRhaW5pbmcgZmxvYXRzLlxyXG4vLy9cclxuLy8vIEBsaW5rIGh0dHA6Ly9jc3Ntb2pvLmNvbS9sYXRlc3RfbmV3X2NsZWFyZml4X3NvX2Zhci9cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIEBpbmNsdWRlIGNsZWFyZml4O1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICAuZWxlbWVudDo6YWZ0ZXIge1xyXG4vLy8gICAgIGNsZWFyOiBib3RoO1xyXG4vLy8gICAgIGNvbnRlbnQ6IFwiXCI7XHJcbi8vLyAgICAgZGlzcGxheTogdGFibGU7XHJcbi8vLyAgIH1cclxuXHJcbkBtaXhpbiBjbGVhcmZpeCB7XHJcbiAgJjo6YWZ0ZXIge1xyXG4gICAgY2xlYXI6IGJvdGg7XHJcbiAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgZGlzcGxheTogdGFibGU7XHJcbiAgfVxyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBUcnVuY2F0ZXMgdGV4dCBhbmQgYWRkcyBhbiBlbGxpcHNpcyB0byByZXByZXNlbnQgb3ZlcmZsb3cuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCBbMTAwJV1cclxuLy8vICAgTWF4LXdpZHRoIGZvciB0aGUgc3RyaW5nIHRvIHJlc3BlY3QgYmVmb3JlIGJlaW5nIHRydW5jYXRlZFxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgQGluY2x1ZGUgZWxsaXBzaXM7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbi8vLyAgICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4vLy8gICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbi8vLyAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XHJcbi8vLyAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuLy8vICAgICB3b3JkLXdyYXA6IG5vcm1hbDtcclxuLy8vICAgfVxyXG5cclxuQG1peGluIGVsbGlwc2lzKCR3aWR0aDogMTAwJSkge1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICBtYXgtd2lkdGg6ICR3aWR0aDtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgd29yZC13cmFwOiBub3JtYWw7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIEdlb3JnaWEgZm9udCBzdGFjay5cclxuLy8vXHJcbi8vLyBAdHlwZSBMaXN0XHJcblxyXG4kZ2VvcmdpYTogXCJHZW9yZ2lhXCIsIFwiQ2FtYnJpYVwiLCBcIlRpbWVzIE5ldyBSb21hblwiLCBcIlRpbWVzXCIsIHNlcmlmO1xyXG5cclxuLy8vIEhlbHZldGljYSBmb250IHN0YWNrLlxyXG4vLy9cclxuLy8vIEB0eXBlIExpc3RcclxuXHJcbiRoZWx2ZXRpY2E6IFwiSGVsdmV0aWNhIE5ldWVcIiwgXCJIZWx2ZXRpY2FcIiwgXCJSb2JvdG9cIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xyXG5cclxuLy8vIEx1Y2lkYSBHcmFuZGUgZm9udCBzdGFjay5cclxuLy8vXHJcbi8vLyBAdHlwZSBMaXN0XHJcblxyXG4kbHVjaWRhLWdyYW5kZTogXCJMdWNpZGEgR3JhbmRlXCIsIFwiVGFob21hXCIsIFwiVmVyZGFuYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XHJcblxyXG4vLy8gTW9ub3NwYWNlIGZvbnQgc3RhY2suXHJcbi8vL1xyXG4vLy8gQHR5cGUgTGlzdFxyXG5cclxuJG1vbm9zcGFjZTogXCJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm9cIiwgXCJDb25zb2xhc1wiLCBcIkNvdXJpZXJcIiwgbW9ub3NwYWNlO1xyXG5cclxuLy8vIFZlcmRhbmEgZm9udCBzdGFjay5cclxuLy8vXHJcbi8vLyBAdHlwZSBMaXN0XHJcblxyXG4kdmVyZGFuYTogXCJWZXJkYW5hXCIsIFwiR2VuZXZhXCIsIHNhbnMtc2VyaWY7XHJcbiIsIi8vLyBIaWRlcyB0aGUgdGV4dCBpbiBhbiBlbGVtZW50LCBjb21tb25seSB1c2VkIHRvIHNob3cgYW4gaW1hZ2UuIFNvbWUgZWxlbWVudHMgd2lsbCBuZWVkIGJsb2NrLWxldmVsIHN0eWxlcyBhcHBsaWVkLlxyXG4vLy9cclxuLy8vIEBsaW5rIGh0dHA6Ly96ZWxkbWFuLmNvbS8yMDEyLzAzLzAxL3JlcGxhY2luZy10aGUtOTk5OXB4LWhhY2stbmV3LWltYWdlLXJlcGxhY2VtZW50XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBAaW5jbHVkZSBoaWRlLXRleHQ7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4vLy8gICAgIHRleHQtaW5kZW50OiAxMDElO1xyXG4vLy8gICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAdG9kbyBSZW1vdmUgaGVpZ2h0IGFyZ3VtZW50IGluIHY1LjAuMFxyXG5cclxuQG1peGluIGhpZGUtdGV4dCgkaGVpZ2h0OiBudWxsKSB7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICB0ZXh0LWluZGVudDogMTAxJTtcclxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG5cclxuICBAaWYgJGhlaWdodCB7XHJcbiAgICBAd2FybiBcIlRoZSBgaGlkZS10ZXh0YCBtaXhpbiBoYXMgY2hhbmdlZCBhbmQgbm8gbG9uZ2VyIHJlcXVpcmVzIGEgaGVpZ2h0LiBUaGUgaGVpZ2h0IGFyZ3VtZW50IHdpbGwgbm8gbG9uZ2VyIGJlIGFjY2VwdGVkIGluIHY1LjAuMFwiO1xyXG4gIH1cclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgbWFyZ2luYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJHZhbHNcclxuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIEBpbmNsdWRlIG1hcmdpbihudWxsIDEwcHggM2VtIDIwdmgpO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgbWFyZ2luLWJvdHRvbTogM2VtO1xyXG4vLy8gICAgIG1hcmdpbi1sZWZ0OiAyMHZoO1xyXG4vLy8gICAgIG1hcmdpbi1yaWdodDogMTBweDtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEByZXF1aXJlIHttaXhpbn0gZGlyZWN0aW9uYWwtcHJvcGVydHlcclxuLy8vXHJcbi8vLyBAb3V0cHV0IGBtYXJnaW5gXHJcblxyXG5AbWl4aW4gbWFyZ2luKCR2YWxzLi4uKSB7XHJcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkobWFyZ2luLCBmYWxzZSwgJHZhbHMuLi4pO1xyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBwYWRkaW5nYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJHZhbHNcclxuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIEBpbmNsdWRlIHBhZGRpbmcoMTJ2aCBudWxsIDEwcHggNSUpO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgcGFkZGluZy1ib3R0b206IDEwcHg7XHJcbi8vLyAgICAgcGFkZGluZy1sZWZ0OiA1JTtcclxuLy8vICAgICBwYWRkaW5nLXRvcDogMTJ2aDtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEByZXF1aXJlIHttaXhpbn0gZGlyZWN0aW9uYWwtcHJvcGVydHlcclxuLy8vXHJcbi8vLyBAb3V0cHV0IGBwYWRkaW5nYFxyXG5cclxuQG1peGluIHBhZGRpbmcoJHZhbHMuLi4pIHtcclxuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShwYWRkaW5nLCBmYWxzZSwgJHZhbHMuLi4pO1xyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3Igc2V0dGluZyBhbiBlbGVtZW504oCZcyBwb3NpdGlvbi4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7UG9zaXRpb259ICRwb3NpdGlvbiBbcmVsYXRpdmVdXHJcbi8vLyAgIEEgQ1NTIHBvc2l0aW9uIHZhbHVlXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkY29vcmRpbmF0ZXMgW251bGwgbnVsbCBudWxsIG51bGxdXHJcbi8vLyAgIExpc3Qgb2YgdmFsdWVzIHRoYXQgY29ycmVzcG9uZCB0byB0aGUgNC12YWx1ZSBzeW50YXggZm9yIHRoZSBlZGdlcyBvZiBhIGJveFxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDAgbnVsbCBudWxsIDEwZW0pO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgbGVmdDogMTBlbTtcclxuLy8vICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbi8vLyAgICAgdG9wOiAwO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBpcy1sZW5ndGhcclxuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gdW5wYWNrXHJcblxyXG5AbWl4aW4gcG9zaXRpb24oJHBvc2l0aW9uOiByZWxhdGl2ZSwgJGNvb3JkaW5hdGVzOiBudWxsIG51bGwgbnVsbCBudWxsKSB7XHJcbiAgQGlmIHR5cGUtb2YoJHBvc2l0aW9uKSA9PSBsaXN0IHtcclxuICAgICRjb29yZGluYXRlczogJHBvc2l0aW9uO1xyXG4gICAgJHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICB9XHJcblxyXG4gICRjb29yZGluYXRlczogdW5wYWNrKCRjb29yZGluYXRlcyk7XHJcblxyXG4gICRvZmZzZXRzOiAoXHJcbiAgICB0b3A6ICAgIG50aCgkY29vcmRpbmF0ZXMsIDEpLFxyXG4gICAgcmlnaHQ6ICBudGgoJGNvb3JkaW5hdGVzLCAyKSxcclxuICAgIGJvdHRvbTogbnRoKCRjb29yZGluYXRlcywgMyksXHJcbiAgICBsZWZ0OiAgIG50aCgkY29vcmRpbmF0ZXMsIDQpXHJcbiAgKTtcclxuXHJcbiAgcG9zaXRpb246ICRwb3NpdGlvbjtcclxuXHJcbiAgQGVhY2ggJG9mZnNldCwgJHZhbHVlIGluICRvZmZzZXRzIHtcclxuICAgIEBpZiBpcy1sZW5ndGgoJHZhbHVlKSB7XHJcbiAgICAgICN7JG9mZnNldH06ICR2YWx1ZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIEEgbWl4aW4gZm9yIGdlbmVyYXRpbmcgdmVuZG9yIHByZWZpeGVzIG9uIG5vbi1zdGFuZGFyZGl6ZWQgcHJvcGVydGllcy5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHByb3BlcnR5XHJcbi8vLyAgIFByb3BlcnR5IHRvIHByZWZpeFxyXG4vLy9cclxuLy8vIEBwYXJhbSB7Kn0gJHZhbHVlXHJcbi8vLyAgIFZhbHVlIHRvIHVzZVxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TGlzdH0gJHByZWZpeGVzXHJcbi8vLyAgIFByZWZpeGVzIHRvIGRlZmluZVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgQGluY2x1ZGUgcHJlZml4ZXIoYm9yZGVyLXJhZGl1cywgMTBweCwgd2Via2l0IG1zIHNwZWMpO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4vLy8gICAgIC1tb3otYm9yZGVyLXJhZGl1czogMTBweDtcclxuLy8vICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci13ZWJraXRcclxuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3ItbW96aWxsYVxyXG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci1taWNyb3NvZnRcclxuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3Itb3BlcmFcclxuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3Itc3BlY1xyXG5cclxuQG1peGluIHByZWZpeGVyKCRwcm9wZXJ0eSwgJHZhbHVlLCAkcHJlZml4ZXMpIHtcclxuICBAZWFjaCAkcHJlZml4IGluICRwcmVmaXhlcyB7XHJcbiAgICBAaWYgJHByZWZpeCA9PSB3ZWJraXQge1xyXG4gICAgICBAaWYgJHByZWZpeC1mb3Itd2Via2l0IHtcclxuICAgICAgICAtd2Via2l0LSN7JHByb3BlcnR5fTogJHZhbHVlO1xyXG4gICAgICB9XHJcbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gbW96IHtcclxuICAgICAgQGlmICRwcmVmaXgtZm9yLW1vemlsbGEge1xyXG4gICAgICAgIC1tb3otI3skcHJvcGVydHl9OiAkdmFsdWU7XHJcbiAgICAgIH1cclxuICAgIH0gQGVsc2UgaWYgJHByZWZpeCA9PSBtcyB7XHJcbiAgICAgIEBpZiAkcHJlZml4LWZvci1taWNyb3NvZnQge1xyXG4gICAgICAgIC1tcy0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcclxuICAgICAgfVxyXG4gICAgfSBAZWxzZSBpZiAkcHJlZml4ID09IG8ge1xyXG4gICAgICBAaWYgJHByZWZpeC1mb3Itb3BlcmEge1xyXG4gICAgICAgIC1vLSN7JHByb3BlcnR5fTogJHZhbHVlO1xyXG4gICAgICB9XHJcbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gc3BlYyB7XHJcbiAgICAgIEBpZiAkcHJlZml4LWZvci1zcGVjIHtcclxuICAgICAgICAjeyRwcm9wZXJ0eX06ICR2YWx1ZTtcclxuICAgICAgfVxyXG4gICAgfSBAZWxzZSAge1xyXG4gICAgICBAd2FybiBcIlVucmVjb2duaXplZCBwcmVmaXg6ICN7JHByZWZpeH1cIjtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBkaXNhYmxlLXByZWZpeC1mb3ItYWxsKCkge1xyXG4gICRwcmVmaXgtZm9yLXdlYmtpdDogICAgZmFsc2UgIWdsb2JhbDtcclxuICAkcHJlZml4LWZvci1tb3ppbGxhOiAgIGZhbHNlICFnbG9iYWw7XHJcbiAgJHByZWZpeC1mb3ItbWljcm9zb2Z0OiBmYWxzZSAhZ2xvYmFsO1xyXG4gICRwcmVmaXgtZm9yLW9wZXJhOiAgICAgZmFsc2UgIWdsb2JhbDtcclxuICAkcHJlZml4LWZvci1zcGVjOiAgICAgIGZhbHNlICFnbG9iYWw7XHJcbn1cclxuIiwiQG1peGluIHJldGluYS1pbWFnZSgkZmlsZW5hbWUsICRiYWNrZ3JvdW5kLXNpemUsICRleHRlbnNpb246IHBuZywgJHJldGluYS1maWxlbmFtZTogbnVsbCwgJHJldGluYS1zdWZmaXg6IF8yeCwgJGFzc2V0LXBpcGVsaW5lOiAkYXNzZXQtcGlwZWxpbmUpIHtcclxuICBAaWYgJGFzc2V0LXBpcGVsaW5lIHtcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6IGltYWdlLXVybChcIiN7JGZpbGVuYW1lfS4jeyRleHRlbnNpb259XCIpO1xyXG4gIH0gQGVsc2Uge1xyXG4gICAgYmFja2dyb3VuZC1pbWFnZTogICAgICAgdXJsKFwiI3skZmlsZW5hbWV9LiN7JGV4dGVuc2lvbn1cIik7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBoaWRwaSB7XHJcbiAgICBAaWYgJGFzc2V0LXBpcGVsaW5lIHtcclxuICAgICAgQGlmICRyZXRpbmEtZmlsZW5hbWUge1xyXG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGltYWdlLXVybChcIiN7JHJldGluYS1maWxlbmFtZX0uI3skZXh0ZW5zaW9ufVwiKTtcclxuICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogaW1hZ2UtdXJsKFwiI3skZmlsZW5hbWV9I3skcmV0aW5hLXN1ZmZpeH0uI3skZXh0ZW5zaW9ufVwiKTtcclxuICAgICAgfVxyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgIEBpZiAkcmV0aW5hLWZpbGVuYW1lIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIjeyRyZXRpbmEtZmlsZW5hbWV9LiN7JGV4dGVuc2lvbn1cIik7XHJcbiAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIiN7JGZpbGVuYW1lfSN7JHJldGluYS1zdWZmaXh9LiN7JGV4dGVuc2lvbn1cIik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBiYWNrZ3JvdW5kLXNpemU6ICRiYWNrZ3JvdW5kLXNpemU7XHJcbiAgfVxyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBTZXRzIHRoZSBgd2lkdGhgIGFuZCBgaGVpZ2h0YCBvZiB0aGUgZWxlbWVudC5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0xpc3R9ICRzaXplXHJcbi8vLyAgIEEgbGlzdCBvZiBhdCBtb3N0IDIgc2l6ZSB2YWx1ZXMuXHJcbi8vL1xyXG4vLy8gICBJZiB0aGVyZSBpcyBvbmx5IGEgc2luZ2xlIHZhbHVlIGluIGAkc2l6ZWAgaXQgaXMgdXNlZCBmb3IgYm90aCB3aWR0aCBhbmQgaGVpZ2h0LiBBbGwgdW5pdHMgYXJlIHN1cHBvcnRlZC5cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmZpcnN0LWVsZW1lbnQge1xyXG4vLy8gICAgIEBpbmNsdWRlIHNpemUoMmVtKTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vICAgLnNlY29uZC1lbGVtZW50IHtcclxuLy8vICAgICBAaW5jbHVkZSBzaXplKGF1dG8gMTBlbSk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5maXJzdC1lbGVtZW50IHtcclxuLy8vICAgICB3aWR0aDogMmVtO1xyXG4vLy8gICAgIGhlaWdodDogMmVtO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gICAuc2Vjb25kLWVsZW1lbnQge1xyXG4vLy8gICAgIHdpZHRoOiBhdXRvO1xyXG4vLy8gICAgIGhlaWdodDogMTBlbTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEB0b2RvIFJlZmFjdG9yIGluIDUuMC4wIHRvIHVzZSBhIGNvbW1hLXNlcGFyYXRlZCBhcmd1bWVudFxyXG5cclxuQG1peGluIHNpemUoJHZhbHVlKSB7XHJcbiAgJHdpZHRoOiBudGgoJHZhbHVlLCAxKTtcclxuICAkaGVpZ2h0OiAkd2lkdGg7XHJcblxyXG4gIEBpZiBsZW5ndGgoJHZhbHVlKSA+IDEge1xyXG4gICAgJGhlaWdodDogbnRoKCR2YWx1ZSwgMik7XHJcbiAgfVxyXG5cclxuICBAaWYgaXMtc2l6ZSgkaGVpZ2h0KSB7XHJcbiAgICBoZWlnaHQ6ICRoZWlnaHQ7XHJcbiAgfSBAZWxzZSB7XHJcbiAgICBAd2FybiBcImAjeyRoZWlnaHR9YCBpcyBub3QgYSB2YWxpZCBsZW5ndGggZm9yIHRoZSBgJGhlaWdodGAgcGFyYW1ldGVyIGluIHRoZSBgc2l6ZWAgbWl4aW4uXCI7XHJcbiAgfVxyXG5cclxuICBAaWYgaXMtc2l6ZSgkd2lkdGgpIHtcclxuICAgIHdpZHRoOiAkd2lkdGg7XHJcbiAgfSBAZWxzZSB7XHJcbiAgICBAd2FybiBcImAjeyR3aWR0aH1gIGlzIG5vdCBhIHZhbGlkIGxlbmd0aCBmb3IgdGhlIGAkd2lkdGhgIHBhcmFtZXRlciBpbiB0aGUgYHNpemVgIG1peGluLlwiO1xyXG4gIH1cclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gR2VuZXJhdGVzIHZhcmlhYmxlcyBmb3IgYWxsIHRleHQtYmFzZWQgaW5wdXRzLiBQbGVhc2Ugbm90ZSB0aGF0IHlvdSBtdXN0IHVzZSBpbnRlcnBvbGF0aW9uIG9uIHRoZSB2YXJpYWJsZTogYCN7JGFsbC10ZXh0LWlucHV0c31gLlxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAjeyRhbGwtdGV4dC1pbnB1dHN9IHtcclxuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjZjAwO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gICAjeyRhbGwtdGV4dC1pbnB1dHMtZm9jdXN9LFxyXG4vLy8gICAjeyRhbGwtdGV4dC1pbnB1dHMtaG92ZXJ9IHtcclxuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjMGYwO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gICAjeyRhbGwtdGV4dC1pbnB1dHMtYWN0aXZlfSB7XHJcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgIzAwZjtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgaW5wdXRbdHlwZT1cImNvbG9yXCJdLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZVwiXSxcclxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl0sXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXSxcclxuLy8vICAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0sXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0sXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZWxcIl0sXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwidGltZVwiXSxcclxuLy8vICAgaW5wdXRbdHlwZT1cInVybFwiXSxcclxuLy8vICAgaW5wdXRbdHlwZT1cIndlZWtcIl0sXHJcbi8vLyAgIHRleHRhcmVhIHtcclxuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjZjAwO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gICBpbnB1dFt0eXBlPVwiY29sb3JcIl06Zm9jdXMsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRlXCJdOmZvY3VzLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl06Zm9jdXMsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXTpmb2N1cyxcclxuLy8vICAgaW5wdXRbdHlwZT1cImVtYWlsXCJdOmZvY3VzLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwibW9udGhcIl06Zm9jdXMsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl06Zm9jdXMsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXTpmb2N1cyxcclxuLy8vICAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXTpmb2N1cyxcclxuLy8vICAgaW5wdXRbdHlwZT1cInRlbFwiXTpmb2N1cyxcclxuLy8vICAgaW5wdXRbdHlwZT1cInRleHRcIl06Zm9jdXMsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ0aW1lXCJdOmZvY3VzLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwidXJsXCJdOmZvY3VzLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwid2Vla1wiXTpmb2N1cyxcclxuLy8vICAgdGV4dGFyZWE6Zm9jdXMsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJjb2xvclwiXTpob3ZlcixcclxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGVcIl06aG92ZXIsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXTpob3ZlcixcclxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdOmhvdmVyLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiZW1haWxcIl06aG92ZXIsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJtb250aFwiXTpob3ZlcixcclxuLy8vICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXTpob3ZlcixcclxuLy8vICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdOmhvdmVyLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOmhvdmVyLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwidGVsXCJdOmhvdmVyLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwidGV4dFwiXTpob3ZlcixcclxuLy8vICAgaW5wdXRbdHlwZT1cInRpbWVcIl06aG92ZXIsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ1cmxcIl06aG92ZXIsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ3ZWVrXCJdOmhvdmVyLFxyXG4vLy8gICB0ZXh0YXJlYTpob3ZlciB7XHJcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgIzBmMDtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vICAgaW5wdXRbdHlwZT1cImNvbG9yXCJdOmFjdGl2ZSxcclxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGVcIl06YWN0aXZlLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl06YWN0aXZlLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl06YWN0aXZlLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiZW1haWxcIl06YWN0aXZlLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwibW9udGhcIl06YWN0aXZlLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOmFjdGl2ZSxcclxuLy8vICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdOmFjdGl2ZSxcclxuLy8vICAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXTphY3RpdmUsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZWxcIl06YWN0aXZlLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwidGV4dFwiXTphY3RpdmUsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ0aW1lXCJdOmFjdGl2ZSxcclxuLy8vICAgaW5wdXRbdHlwZT1cInVybFwiXTphY3RpdmUsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ3ZWVrXCJdOmFjdGl2ZSxcclxuLy8vICAgdGV4dGFyZWE6YWN0aXZlIHtcclxuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjMDBmO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQHJlcXVpcmUgYXNzaWduLWlucHV0c1xyXG4vLy9cclxuLy8vIEB0eXBlIExpc3RcclxuXHJcbiR0ZXh0LWlucHV0cy1saXN0OiAnaW5wdXRbdHlwZT1cImNvbG9yXCJdJyxcclxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiZGF0ZVwiXScsXHJcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdJyxcclxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl0nLFxyXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJlbWFpbFwiXScsXHJcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cIm1vbnRoXCJdJyxcclxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwibnVtYmVyXCJdJyxcclxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0nLFxyXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJzZWFyY2hcIl0nLFxyXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ0ZWxcIl0nLFxyXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ0ZXh0XCJdJyxcclxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwidGltZVwiXScsXHJcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInVybFwiXScsXHJcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cIndlZWtcIl0nLFxyXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0Om5vdChbdHlwZV0pJyxcclxuICAgICAgICAgICAgICAgICAgICd0ZXh0YXJlYSc7XHJcblxyXG4kYWxsLXRleHQtaW5wdXRzOiAgICAgICAgYXNzaWduLWlucHV0cygkdGV4dC1pbnB1dHMtbGlzdCk7XHJcbiRhbGwtdGV4dC1pbnB1dHMtYWN0aXZlOiBhc3NpZ24taW5wdXRzKCR0ZXh0LWlucHV0cy1saXN0LCBhY3RpdmUpO1xyXG4kYWxsLXRleHQtaW5wdXRzLWZvY3VzOiAgYXNzaWduLWlucHV0cygkdGV4dC1pbnB1dHMtbGlzdCwgZm9jdXMpO1xyXG4kYWxsLXRleHQtaW5wdXRzLWhvdmVyOiAgYXNzaWduLWlucHV0cygkdGV4dC1pbnB1dHMtbGlzdCwgaG92ZXIpO1xyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gQ1NTIGN1YmljLWJlemllciB0aW1pbmcgZnVuY3Rpb25zLiBUaW1pbmcgZnVuY3Rpb25zIGNvdXJ0ZXN5IG9mIGpxdWVyeS5lYXNpZSAoZ2l0aHViLmNvbS9qYXVraWEvZWFzaWUpXHJcbi8vL1xyXG4vLy8gVGltaW5nIGZ1bmN0aW9ucyBhcmUgdGhlIHNhbWUgYXMgZGVtb2VkIGhlcmU6IGh0dHA6Ly9qcXVlcnl1aS5jb20vcmVzb3VyY2VzL2RlbW9zL2VmZmVjdC9lYXNpbmcuaHRtbFxyXG4vLy9cclxuLy8vIEB0eXBlIGN1YmljLWJlemllclxyXG5cclxuJGVhc2UtaW4tcXVhZDogICAgICBjdWJpYy1iZXppZXIoMC41NTAsICAwLjA4NSwgMC42ODAsIDAuNTMwKTtcclxuJGVhc2UtaW4tY3ViaWM6ICAgICBjdWJpYy1iZXppZXIoMC41NTAsICAwLjA1NSwgMC42NzUsIDAuMTkwKTtcclxuJGVhc2UtaW4tcXVhcnQ6ICAgICBjdWJpYy1iZXppZXIoMC44OTUsICAwLjAzMCwgMC42ODUsIDAuMjIwKTtcclxuJGVhc2UtaW4tcXVpbnQ6ICAgICBjdWJpYy1iZXppZXIoMC43NTUsICAwLjA1MCwgMC44NTUsIDAuMDYwKTtcclxuJGVhc2UtaW4tc2luZTogICAgICBjdWJpYy1iZXppZXIoMC40NzAsICAwLjAwMCwgMC43NDUsIDAuNzE1KTtcclxuJGVhc2UtaW4tZXhwbzogICAgICBjdWJpYy1iZXppZXIoMC45NTAsICAwLjA1MCwgMC43OTUsIDAuMDM1KTtcclxuJGVhc2UtaW4tY2lyYzogICAgICBjdWJpYy1iZXppZXIoMC42MDAsICAwLjA0MCwgMC45ODAsIDAuMzM1KTtcclxuJGVhc2UtaW4tYmFjazogICAgICBjdWJpYy1iZXppZXIoMC42MDAsIC0wLjI4MCwgMC43MzUsIDAuMDQ1KTtcclxuXHJcbiRlYXNlLW91dC1xdWFkOiAgICAgY3ViaWMtYmV6aWVyKDAuMjUwLCAgMC40NjAsIDAuNDUwLCAwLjk0MCk7XHJcbiRlYXNlLW91dC1jdWJpYzogICAgY3ViaWMtYmV6aWVyKDAuMjE1LCAgMC42MTAsIDAuMzU1LCAxLjAwMCk7XHJcbiRlYXNlLW91dC1xdWFydDogICAgY3ViaWMtYmV6aWVyKDAuMTY1LCAgMC44NDAsIDAuNDQwLCAxLjAwMCk7XHJcbiRlYXNlLW91dC1xdWludDogICAgY3ViaWMtYmV6aWVyKDAuMjMwLCAgMS4wMDAsIDAuMzIwLCAxLjAwMCk7XHJcbiRlYXNlLW91dC1zaW5lOiAgICAgY3ViaWMtYmV6aWVyKDAuMzkwLCAgMC41NzUsIDAuNTY1LCAxLjAwMCk7XHJcbiRlYXNlLW91dC1leHBvOiAgICAgY3ViaWMtYmV6aWVyKDAuMTkwLCAgMS4wMDAsIDAuMjIwLCAxLjAwMCk7XHJcbiRlYXNlLW91dC1jaXJjOiAgICAgY3ViaWMtYmV6aWVyKDAuMDc1LCAgMC44MjAsIDAuMTY1LCAxLjAwMCk7XHJcbiRlYXNlLW91dC1iYWNrOiAgICAgY3ViaWMtYmV6aWVyKDAuMTc1LCAgMC44ODUsIDAuMzIwLCAxLjI3NSk7XHJcblxyXG4kZWFzZS1pbi1vdXQtcXVhZDogIGN1YmljLWJlemllcigwLjQ1NSwgIDAuMDMwLCAwLjUxNSwgMC45NTUpO1xyXG4kZWFzZS1pbi1vdXQtY3ViaWM6IGN1YmljLWJlemllcigwLjY0NSwgIDAuMDQ1LCAwLjM1NSwgMS4wMDApO1xyXG4kZWFzZS1pbi1vdXQtcXVhcnQ6IGN1YmljLWJlemllcigwLjc3MCwgIDAuMDAwLCAwLjE3NSwgMS4wMDApO1xyXG4kZWFzZS1pbi1vdXQtcXVpbnQ6IGN1YmljLWJlemllcigwLjg2MCwgIDAuMDAwLCAwLjA3MCwgMS4wMDApO1xyXG4kZWFzZS1pbi1vdXQtc2luZTogIGN1YmljLWJlemllcigwLjQ0NSwgIDAuMDUwLCAwLjU1MCwgMC45NTApO1xyXG4kZWFzZS1pbi1vdXQtZXhwbzogIGN1YmljLWJlemllcigxLjAwMCwgIDAuMDAwLCAwLjAwMCwgMS4wMDApO1xyXG4kZWFzZS1pbi1vdXQtY2lyYzogIGN1YmljLWJlemllcigwLjc4NSwgIDAuMTM1LCAwLjE1MCwgMC44NjApO1xyXG4kZWFzZS1pbi1vdXQtYmFjazogIGN1YmljLWJlemllcigwLjY4MCwgLTAuNTUwLCAwLjI2NSwgMS41NTApO1xyXG4iLCJAbWl4aW4gdHJpYW5nbGUoJHNpemUsICRjb2xvciwgJGRpcmVjdGlvbikge1xyXG4gICR3aWR0aDogbnRoKCRzaXplLCAxKTtcclxuICAkaGVpZ2h0OiBudGgoJHNpemUsIGxlbmd0aCgkc2l6ZSkpO1xyXG4gICRmb3JlZ3JvdW5kLWNvbG9yOiBudGgoJGNvbG9yLCAxKTtcclxuICAkYmFja2dyb3VuZC1jb2xvcjogaWYobGVuZ3RoKCRjb2xvcikgPT0gMiwgbnRoKCRjb2xvciwgMiksIHRyYW5zcGFyZW50KTtcclxuICBoZWlnaHQ6IDA7XHJcbiAgd2lkdGg6IDA7XHJcblxyXG4gIEBpZiAoJGRpcmVjdGlvbiA9PSB1cCkgb3IgKCRkaXJlY3Rpb24gPT0gZG93bikgb3IgKCRkaXJlY3Rpb24gPT0gcmlnaHQpIG9yICgkZGlyZWN0aW9uID09IGxlZnQpIHtcclxuICAgICR3aWR0aDogJHdpZHRoIC8gMjtcclxuICAgICRoZWlnaHQ6IGlmKGxlbmd0aCgkc2l6ZSkgPiAxLCAkaGVpZ2h0LCAkaGVpZ2h0LzIpO1xyXG5cclxuICAgIEBpZiAkZGlyZWN0aW9uID09IHVwIHtcclxuICAgICAgYm9yZGVyLWJvdHRvbTogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcclxuICAgICAgYm9yZGVyLWxlZnQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcclxuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XHJcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gcmlnaHQge1xyXG4gICAgICBib3JkZXItYm90dG9tOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XHJcbiAgICAgIGJvcmRlci1sZWZ0OiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xyXG4gICAgICBib3JkZXItdG9wOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XHJcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gZG93biB7XHJcbiAgICAgIGJvcmRlci1sZWZ0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XHJcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xyXG4gICAgICBib3JkZXItdG9wOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xyXG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGxlZnQge1xyXG4gICAgICBib3JkZXItYm90dG9tOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XHJcbiAgICAgIGJvcmRlci1yaWdodDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcclxuICAgICAgYm9yZGVyLXRvcDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xyXG4gICAgfVxyXG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gdXAtcmlnaHQpIG9yICgkZGlyZWN0aW9uID09IHVwLWxlZnQpIHtcclxuICAgIGJvcmRlci10b3A6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XHJcblxyXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gdXAtcmlnaHQge1xyXG4gICAgICBib3JkZXItbGVmdDogICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcclxuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSB1cC1sZWZ0IHtcclxuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBkb3duLXJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSBkb3duLWxlZnQpIHtcclxuICAgIGJvcmRlci1ib3R0b206ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XHJcblxyXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gZG93bi1yaWdodCB7XHJcbiAgICAgIGJvcmRlci1sZWZ0OiAgJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xyXG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGRvd24tbGVmdCB7XHJcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xyXG4gICAgfVxyXG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtdXApIHtcclxuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGZvcmVncm91bmQtY29sb3I7XHJcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xyXG4gICAgYm9yZGVyLXdpZHRoOiAkaGVpZ2h0ICR3aWR0aDtcclxuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LWRvd24pIHtcclxuICAgIGJvcmRlci1jb2xvcjogJGZvcmVncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3I7XHJcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xyXG4gICAgYm9yZGVyLXdpZHRoOiAkaGVpZ2h0ICR3aWR0aDtcclxuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LXJpZ2h0KSB7XHJcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRmb3JlZ3JvdW5kLWNvbG9yO1xyXG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuICAgIGJvcmRlci13aWR0aDogJHdpZHRoICRoZWlnaHQ7XHJcbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC1sZWZ0KSB7XHJcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yICRmb3JlZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yO1xyXG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuICAgIGJvcmRlci13aWR0aDogJHdpZHRoICRoZWlnaHQ7XHJcbiAgfVxyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBQcm92aWRlcyBhbiBlYXN5IHdheSB0byBjaGFuZ2UgdGhlIGB3b3JkLXdyYXBgIHByb3BlcnR5LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkd3JhcCBbYnJlYWstd29yZF1cclxuLy8vICAgVmFsdWUgZm9yIHRoZSBgd29yZC1icmVha2AgcHJvcGVydHkuXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC53cmFwcGVyIHtcclxuLy8vICAgICBAaW5jbHVkZSB3b3JkLXdyYXAoYnJlYWstd29yZCk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC53cmFwcGVyIHtcclxuLy8vICAgICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xyXG4vLy8gICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcclxuLy8vICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XHJcbi8vLyAgIH1cclxuXHJcbkBtaXhpbiB3b3JkLXdyYXAoJHdyYXA6IGJyZWFrLXdvcmQpIHtcclxuICBvdmVyZmxvdy13cmFwOiAkd3JhcDtcclxuICB3b3JkLXdyYXA6ICR3cmFwO1xyXG5cclxuICBAaWYgJHdyYXAgPT0gYnJlYWstd29yZCB7XHJcbiAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XHJcbiAgfSBAZWxzZSB7XHJcbiAgICB3b3JkLWJyZWFrOiAkd3JhcDtcclxuICB9XHJcbn1cclxuIiwiLy8gVGhlIGZvbGxvd2luZyBmZWF0dXJlcyBoYXZlIGJlZW4gZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IE1BSk9SIHZlcnNpb24gcmVsZWFzZVxyXG5cclxuQG1peGluIGlubGluZS1ibG9jayB7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cclxuICBAd2FybiBcIlRoZSBpbmxpbmUtYmxvY2sgbWl4aW4gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZVwiO1xyXG59XHJcblxyXG5AbWl4aW4gYnV0dG9uICgkc3R5bGU6IHNpbXBsZSwgJGJhc2UtY29sb3I6ICM0Mjk0ZjAsICR0ZXh0LXNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xyXG5cclxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IHN0cmluZyBhbmQgdHlwZS1vZigkYmFzZS1jb2xvcikgPT0gY29sb3Ige1xyXG4gICAgQGluY2x1ZGUgYnV0dG9uc3R5bGUoJHN0eWxlLCAkYmFzZS1jb2xvciwgJHRleHQtc2l6ZSwgJHBhZGRpbmcpO1xyXG4gIH1cclxuXHJcbiAgQGlmIHR5cGUtb2YoJHN0eWxlKSA9PSBzdHJpbmcgYW5kIHR5cGUtb2YoJGJhc2UtY29sb3IpID09IG51bWJlciB7XHJcbiAgICAkcGFkZGluZzogJHRleHQtc2l6ZTtcclxuICAgICR0ZXh0LXNpemU6ICRiYXNlLWNvbG9yO1xyXG4gICAgJGJhc2UtY29sb3I6ICM0Mjk0ZjA7XHJcblxyXG4gICAgQGlmICRwYWRkaW5nID09IGluaGVyaXQge1xyXG4gICAgICAkcGFkZGluZzogN3B4IDE4cHg7XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgYnV0dG9uc3R5bGUoJHN0eWxlLCAkYmFzZS1jb2xvciwgJHRleHQtc2l6ZSwgJHBhZGRpbmcpO1xyXG4gIH1cclxuXHJcbiAgQGlmIHR5cGUtb2YoJHN0eWxlKSA9PSBjb2xvciBhbmQgdHlwZS1vZigkYmFzZS1jb2xvcikgPT0gY29sb3Ige1xyXG4gICAgJGJhc2UtY29sb3I6ICRzdHlsZTtcclxuICAgICRzdHlsZTogc2ltcGxlO1xyXG4gICAgQGluY2x1ZGUgYnV0dG9uc3R5bGUoJHN0eWxlLCAkYmFzZS1jb2xvciwgJHRleHQtc2l6ZSwgJHBhZGRpbmcpO1xyXG4gIH1cclxuXHJcbiAgQGlmIHR5cGUtb2YoJHN0eWxlKSA9PSBjb2xvciBhbmQgdHlwZS1vZigkYmFzZS1jb2xvcikgPT0gbnVtYmVyIHtcclxuICAgICRwYWRkaW5nOiAkdGV4dC1zaXplO1xyXG4gICAgJHRleHQtc2l6ZTogJGJhc2UtY29sb3I7XHJcbiAgICAkYmFzZS1jb2xvcjogJHN0eWxlO1xyXG4gICAgJHN0eWxlOiBzaW1wbGU7XHJcblxyXG4gICAgQGlmICRwYWRkaW5nID09IGluaGVyaXQge1xyXG4gICAgICAkcGFkZGluZzogN3B4IDE4cHg7XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgYnV0dG9uc3R5bGUoJHN0eWxlLCAkYmFzZS1jb2xvciwgJHRleHQtc2l6ZSwgJHBhZGRpbmcpO1xyXG4gIH1cclxuXHJcbiAgQGlmIHR5cGUtb2YoJHN0eWxlKSA9PSBudW1iZXIge1xyXG4gICAgJHBhZGRpbmc6ICRiYXNlLWNvbG9yO1xyXG4gICAgJHRleHQtc2l6ZTogJHN0eWxlO1xyXG4gICAgJGJhc2UtY29sb3I6ICM0Mjk0ZjA7XHJcbiAgICAkc3R5bGU6IHNpbXBsZTtcclxuXHJcbiAgICBAaWYgJHBhZGRpbmcgPT0gIzQyOTRmMCB7XHJcbiAgICAgICRwYWRkaW5nOiA3cHggMThweDtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XHJcbiAgfVxyXG5cclxuICAmOmRpc2FibGVkIHtcclxuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XHJcbiAgICBvcGFjaXR5OiAwLjU7XHJcbiAgfVxyXG5cclxuICBAd2FybiBcIlRoZSBidXR0b24gbWl4aW4gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZVwiO1xyXG59XHJcblxyXG4vLyBTZWxlY3RvciBTdHlsZSBCdXR0b25cclxuQG1peGluIGJ1dHRvbnN0eWxlKCR0eXBlLCAkYi1jb2xvciwgJHQtc2l6ZSwgJHBhZCkge1xyXG4gIC8vIEdyYXlzY2FsZSBidXR0b25cclxuICBAaWYgJHR5cGUgPT0gc2ltcGxlIGFuZCAkYi1jb2xvciA9PSBncmF5c2NhbGUoJGItY29sb3IpIHtcclxuICAgIEBpbmNsdWRlIHNpbXBsZSgkYi1jb2xvciwgdHJ1ZSwgJHQtc2l6ZSwgJHBhZCk7XHJcbiAgfVxyXG5cclxuICBAaWYgJHR5cGUgPT0gc2hpbnkgYW5kICRiLWNvbG9yID09IGdyYXlzY2FsZSgkYi1jb2xvcikge1xyXG4gICAgQGluY2x1ZGUgc2hpbnkoJGItY29sb3IsIHRydWUsICR0LXNpemUsICRwYWQpO1xyXG4gIH1cclxuXHJcbiAgQGlmICR0eXBlID09IHBpbGwgYW5kICRiLWNvbG9yID09IGdyYXlzY2FsZSgkYi1jb2xvcikge1xyXG4gICAgQGluY2x1ZGUgcGlsbCgkYi1jb2xvciwgdHJ1ZSwgJHQtc2l6ZSwgJHBhZCk7XHJcbiAgfVxyXG5cclxuICBAaWYgJHR5cGUgPT0gZmxhdCBhbmQgJGItY29sb3IgPT0gZ3JheXNjYWxlKCRiLWNvbG9yKSB7XHJcbiAgICBAaW5jbHVkZSBmbGF0KCRiLWNvbG9yLCB0cnVlLCAkdC1zaXplLCAkcGFkKTtcclxuICB9XHJcblxyXG4gIC8vIENvbG9yZWQgYnV0dG9uXHJcbiAgQGlmICR0eXBlID09IHNpbXBsZSB7XHJcbiAgICBAaW5jbHVkZSBzaW1wbGUoJGItY29sb3IsIGZhbHNlLCAkdC1zaXplLCAkcGFkKTtcclxuICB9XHJcblxyXG4gIEBlbHNlIGlmICR0eXBlID09IHNoaW55IHtcclxuICAgIEBpbmNsdWRlIHNoaW55KCRiLWNvbG9yLCBmYWxzZSwgJHQtc2l6ZSwgJHBhZCk7XHJcbiAgfVxyXG5cclxuICBAZWxzZSBpZiAkdHlwZSA9PSBwaWxsIHtcclxuICAgIEBpbmNsdWRlIHBpbGwoJGItY29sb3IsIGZhbHNlLCAkdC1zaXplLCAkcGFkKTtcclxuICB9XHJcblxyXG4gIEBlbHNlIGlmICR0eXBlID09IGZsYXQge1xyXG4gICAgQGluY2x1ZGUgZmxhdCgkYi1jb2xvciwgZmFsc2UsICR0LXNpemUsICRwYWQpO1xyXG4gIH1cclxufVxyXG5cclxuLy8gU2ltcGxlIEJ1dHRvblxyXG5AbWl4aW4gc2ltcGxlKCRiYXNlLWNvbG9yLCAkZ3JheXNjYWxlOiBmYWxzZSwgJHRleHRzaXplOiBpbmhlcml0LCAkcGFkZGluZzogN3B4IDE4cHgpIHtcclxuICAkY29sb3I6ICAgICAgICAgaHNsKDAsIDAsIDEwMCUpO1xyXG4gICRib3JkZXI6ICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAgOSUsICAkbGlnaHRuZXNzOiAtMTQlKTtcclxuICAkaW5zZXQtc2hhZG93OiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogLTglLCAgJGxpZ2h0bmVzczogIDE1JSk7XHJcbiAgJHN0b3AtZ3JhZGllbnQ6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246ICA5JSwgICRsaWdodG5lc3M6IC0xMSUpO1xyXG4gICR0ZXh0LXNoYWRvdzogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAgMTUlLCAkbGlnaHRuZXNzOiAtMTglKTtcclxuXHJcbiAgQGlmIGlzLWxpZ2h0KCRiYXNlLWNvbG9yKSB7XHJcbiAgICAkY29sb3I6ICAgICAgIGhzbCgwLCAwLCAyMCUpO1xyXG4gICAgJHRleHQtc2hhZG93OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAxMCUsICRsaWdodG5lc3M6IDQlKTtcclxuICB9XHJcblxyXG4gIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xyXG4gICAgJGJvcmRlcjogICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyKTtcclxuICAgICRpbnNldC1zaGFkb3c6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdyk7XHJcbiAgICAkc3RvcC1ncmFkaWVudDogZ3JheXNjYWxlKCRzdG9wLWdyYWRpZW50KTtcclxuICAgICR0ZXh0LXNoYWRvdzogICBncmF5c2NhbGUoJHRleHQtc2hhZG93KTtcclxuICB9XHJcblxyXG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXI7XHJcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xyXG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93O1xyXG4gIGNvbG9yOiAkY29sb3I7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIGZvbnQtc2l6ZTogJHRleHRzaXplO1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCAoJGJhc2UtY29sb3IsICRzdG9wLWdyYWRpZW50KTtcclxuICBwYWRkaW5nOiAkcGFkZGluZztcclxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgdGV4dC1zaGFkb3c6IDAgMXB4IDAgJHRleHQtc2hhZG93O1xyXG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XHJcblxyXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xyXG4gICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IC00JSwgJGxpZ2h0bmVzczogLTUlKTtcclxuICAgICRpbnNldC1zaGFkb3ctaG92ZXI6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAtNyUsICRsaWdodG5lc3M6ICA1JSk7XHJcbiAgICAkc3RvcC1ncmFkaWVudC1ob3ZlcjogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogIDglLCAkbGlnaHRuZXNzOiAtMTQlKTtcclxuXHJcbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcclxuICAgICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGdyYXlzY2FsZSgkYmFzZS1jb2xvci1ob3Zlcik7XHJcbiAgICAgICRpbnNldC1zaGFkb3ctaG92ZXI6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdy1ob3Zlcik7XHJcbiAgICAgICRzdG9wLWdyYWRpZW50LWhvdmVyOiBncmF5c2NhbGUoJHN0b3AtZ3JhZGllbnQtaG92ZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCAoJGJhc2UtY29sb3ItaG92ZXIsICRzdG9wLWdyYWRpZW50LWhvdmVyKTtcclxuXHJcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdy1ob3ZlcjtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICB9XHJcblxyXG4gICY6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpLFxyXG4gICY6Zm9jdXM6bm90KDpkaXNhYmxlZCkge1xyXG4gICAgJGJvcmRlci1hY3RpdmU6ICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDklLCAkbGlnaHRuZXNzOiAtMTQlKTtcclxuICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiA3JSwgJGxpZ2h0bmVzczogLTE3JSk7XHJcblxyXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XHJcbiAgICAgICRib3JkZXItYWN0aXZlOiAgICAgICBncmF5c2NhbGUoJGJvcmRlci1hY3RpdmUpO1xyXG4gICAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctYWN0aXZlKTtcclxuICAgIH1cclxuXHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLWFjdGl2ZTtcclxuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCA4cHggNHB4ICRpbnNldC1zaGFkb3ctYWN0aXZlLCBpbnNldCAwIDAgOHB4IDRweCAkaW5zZXQtc2hhZG93LWFjdGl2ZTtcclxuICB9XHJcbn1cclxuXHJcbi8vIFNoaW55IEJ1dHRvblxyXG5AbWl4aW4gc2hpbnkoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlLCAkdGV4dHNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xyXG4gICRjb2xvcjogICAgICAgICBoc2woMCwgMCwgMTAwJSk7XHJcbiAgJGJvcmRlcjogICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTExNywgJGdyZWVuOiAtMTExLCAkYmx1ZTogLTgxKTtcclxuICAkYm9yZGVyLWJvdHRvbTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTI2LCAkZ3JlZW46IC0xMjcsICRibHVlOiAtMTIyKTtcclxuICAkZm91cnRoLXN0b3A6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtNzksICAkZ3JlZW46IC03MCwgICRibHVlOiAtNDYpO1xyXG4gICRpbnNldC1zaGFkb3c6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6ICAzNywgICRncmVlbjogIDI5LCAgJGJsdWU6ICAxMik7XHJcbiAgJHNlY29uZC1zdG9wOiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTU2LCAgJGdyZWVuOiAtNTAsICAkYmx1ZTogLTMzKTtcclxuICAkdGV4dC1zaGFkb3c6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTQwLCAkZ3JlZW46IC0xNDEsICRibHVlOiAtMTE0KTtcclxuICAkdGhpcmQtc3RvcDogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtODYsICAkZ3JlZW46IC03NSwgICRibHVlOiAtNDgpO1xyXG5cclxuICBAaWYgaXMtbGlnaHQoJGJhc2UtY29sb3IpIHtcclxuICAgICRjb2xvcjogICAgICAgaHNsKDAsIDAsIDIwJSk7XHJcbiAgICAkdGV4dC1zaGFkb3c6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDEwJSwgJGxpZ2h0bmVzczogNCUpO1xyXG4gIH1cclxuXHJcbiAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XHJcbiAgICAkYm9yZGVyOiAgICAgICAgZ3JheXNjYWxlKCRib3JkZXIpO1xyXG4gICAgJGJvcmRlci1ib3R0b206IGdyYXlzY2FsZSgkYm9yZGVyLWJvdHRvbSk7XHJcbiAgICAkZm91cnRoLXN0b3A6ICAgZ3JheXNjYWxlKCRmb3VydGgtc3RvcCk7XHJcbiAgICAkaW5zZXQtc2hhZG93OiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3cpO1xyXG4gICAgJHNlY29uZC1zdG9wOiAgIGdyYXlzY2FsZSgkc2Vjb25kLXN0b3ApO1xyXG4gICAgJHRleHQtc2hhZG93OiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3cpO1xyXG4gICAgJHRoaXJkLXN0b3A6ICAgIGdyYXlzY2FsZSgkdGhpcmQtc3RvcCk7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQodG9wLCAkYmFzZS1jb2xvciAwJSwgJHNlY29uZC1zdG9wIDUwJSwgJHRoaXJkLXN0b3AgNTAlLCAkZm91cnRoLXN0b3AgMTAwJSk7XHJcblxyXG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXI7XHJcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRib3JkZXItYm90dG9tO1xyXG4gIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdztcclxuICBjb2xvcjogJGNvbG9yO1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICBmb250LXNpemU6ICR0ZXh0c2l6ZTtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxuICBwYWRkaW5nOiAkcGFkZGluZztcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gIHRleHQtc2hhZG93OiAwIC0xcHggMXB4ICR0ZXh0LXNoYWRvdztcclxuXHJcbiAgJjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XHJcbiAgICAkZmlyc3Qtc3RvcC1ob3ZlcjogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTEzLCAkZ3JlZW46IC0xNSwgJGJsdWU6IC0xOCk7XHJcbiAgICAkc2Vjb25kLXN0b3AtaG92ZXI6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTY2LCAkZ3JlZW46IC02MiwgJGJsdWU6IC01MSk7XHJcbiAgICAkdGhpcmQtc3RvcC1ob3ZlcjogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTkzLCAkZ3JlZW46IC04NSwgJGJsdWU6IC02Nik7XHJcbiAgICAkZm91cnRoLXN0b3AtaG92ZXI6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTg2LCAkZ3JlZW46IC04MCwgJGJsdWU6IC02Myk7XHJcblxyXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XHJcbiAgICAgICRmaXJzdC1zdG9wLWhvdmVyOiAgZ3JheXNjYWxlKCRmaXJzdC1zdG9wLWhvdmVyKTtcclxuICAgICAgJHNlY29uZC1zdG9wLWhvdmVyOiBncmF5c2NhbGUoJHNlY29uZC1zdG9wLWhvdmVyKTtcclxuICAgICAgJHRoaXJkLXN0b3AtaG92ZXI6ICBncmF5c2NhbGUoJHRoaXJkLXN0b3AtaG92ZXIpO1xyXG4gICAgICAkZm91cnRoLXN0b3AtaG92ZXI6IGdyYXlzY2FsZSgkZm91cnRoLXN0b3AtaG92ZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCh0b3AsICRmaXJzdC1zdG9wLWhvdmVyICAwJSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzZWNvbmQtc3RvcC1ob3ZlciA1MCUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcmQtc3RvcC1ob3ZlciAgNTAlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGZvdXJ0aC1zdG9wLWhvdmVyIDEwMCUpO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIH1cclxuXHJcbiAgJjphY3RpdmU6bm90KDpkaXNhYmxlZCksXHJcbiAgJjpmb2N1czpub3QoOmRpc2FibGVkKSB7XHJcbiAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTExLCAkZ3JlZW46IC0xMTYsICRibHVlOiAtMTIyKTtcclxuXHJcbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcclxuICAgICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6IGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWFjdGl2ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDIwcHggMCAkaW5zZXQtc2hhZG93LWFjdGl2ZTtcclxuICB9XHJcbn1cclxuXHJcbi8vIFBpbGwgQnV0dG9uXHJcbkBtaXhpbiBwaWxsKCRiYXNlLWNvbG9yLCAkZ3JheXNjYWxlOiBmYWxzZSwgJHRleHRzaXplOiBpbmhlcml0LCAkcGFkZGluZzogN3B4IDE4cHgpIHtcclxuICAkY29sb3I6ICAgICAgICAgaHNsKDAsIDAsIDEwMCUpO1xyXG4gICRib3JkZXItYm90dG9tOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA4LCAkc2F0dXJhdGlvbjogLTExJSwgJGxpZ2h0bmVzczogLTI2JSk7XHJcbiAgJGJvcmRlci1zaWRlczogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDQsICRzYXR1cmF0aW9uOiAtMjElLCAkbGlnaHRuZXNzOiAtMjElKTtcclxuICAkYm9yZGVyLXRvcDogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAtMSwgJHNhdHVyYXRpb246IC0zMCUsICRsaWdodG5lc3M6IC0xNSUpO1xyXG4gICRpbnNldC1zaGFkb3c6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IC0xLCAkc2F0dXJhdGlvbjogLTElLCAgJGxpZ2h0bmVzczogIDclKTtcclxuICAkc3RvcC1ncmFkaWVudDogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgOCwgJHNhdHVyYXRpb246ICAxNCUsICRsaWdodG5lc3M6IC0xMCUpO1xyXG4gICR0ZXh0LXNoYWRvdzogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA1LCAkc2F0dXJhdGlvbjogLTE5JSwgJGxpZ2h0bmVzczogLTE1JSk7XHJcblxyXG4gIEBpZiBpcy1saWdodCgkYmFzZS1jb2xvcikge1xyXG4gICAgJGNvbG9yOiAgICAgICBoc2woMCwgMCwgMjAlKTtcclxuICAgICR0ZXh0LXNoYWRvdzogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogMTAlLCAkbGlnaHRuZXNzOiA0JSk7XHJcbiAgfVxyXG5cclxuICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcclxuICAgICRib3JkZXItYm90dG9tOiBncmF5c2NhbGUoJGJvcmRlci1ib3R0b20pO1xyXG4gICAgJGJvcmRlci1zaWRlczogIGdyYXlzY2FsZSgkYm9yZGVyLXNpZGVzKTtcclxuICAgICRib3JkZXItdG9wOiAgICBncmF5c2NhbGUoJGJvcmRlci10b3ApO1xyXG4gICAgJGluc2V0LXNoYWRvdzogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93KTtcclxuICAgICRzdG9wLWdyYWRpZW50OiBncmF5c2NhbGUoJHN0b3AtZ3JhZGllbnQpO1xyXG4gICAgJHRleHQtc2hhZG93OiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3cpO1xyXG4gIH1cclxuXHJcbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci10b3A7XHJcbiAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLXRvcCAkYm9yZGVyLXNpZGVzICRib3JkZXItYm90dG9tO1xyXG4gIGJvcmRlci1yYWRpdXM6IDE2cHg7XHJcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3c7XHJcbiAgY29sb3I6ICRjb2xvcjtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgZm9udC1zaXplOiAkdGV4dHNpemU7XHJcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICBsaW5lLWhlaWdodDogMTtcclxuICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQgKCRiYXNlLWNvbG9yLCAkc3RvcC1ncmFkaWVudCk7XHJcbiAgcGFkZGluZzogJHBhZGRpbmc7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICB0ZXh0LXNoYWRvdzogMCAtMXB4IDFweCAkdGV4dC1zaGFkb3c7XHJcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcclxuXHJcbiAgJjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XHJcbiAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpZ2h0bmVzczogLTQuNSUpO1xyXG4gICAgJGJvcmRlci1ib3R0b206ICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDgsICRzYXR1cmF0aW9uOiAgMTMuNSUsICRsaWdodG5lc3M6IC0zMiUpO1xyXG4gICAgJGJvcmRlci1zaWRlczogICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDQsICRzYXR1cmF0aW9uOiAtMiUsICAgICRsaWdodG5lc3M6IC0yNyUpO1xyXG4gICAgJGJvcmRlci10b3A6ICAgICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogLTEsICRzYXR1cmF0aW9uOiAtMTclLCAgICRsaWdodG5lc3M6IC0yMSUpO1xyXG4gICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgICAgICAgICAgICRzYXR1cmF0aW9uOiAtMSUsICAgICRsaWdodG5lc3M6ICAzJSk7XHJcbiAgICAkc3RvcC1ncmFkaWVudC1ob3ZlcjogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgOCwgJHNhdHVyYXRpb246IC00JSwgICAgJGxpZ2h0bmVzczogLTE1LjUlKTtcclxuICAgICR0ZXh0LXNoYWRvdy1ob3ZlcjogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA1LCAkc2F0dXJhdGlvbjogLTUlLCAgICAkbGlnaHRuZXNzOiAtMjIlKTtcclxuXHJcbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcclxuICAgICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGdyYXlzY2FsZSgkYmFzZS1jb2xvci1ob3Zlcik7XHJcbiAgICAgICRib3JkZXItYm90dG9tOiAgICAgICBncmF5c2NhbGUoJGJvcmRlci1ib3R0b20pO1xyXG4gICAgICAkYm9yZGVyLXNpZGVzOiAgICAgICAgZ3JheXNjYWxlKCRib3JkZXItc2lkZXMpO1xyXG4gICAgICAkYm9yZGVyLXRvcDogICAgICAgICAgZ3JheXNjYWxlKCRib3JkZXItdG9wKTtcclxuICAgICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWhvdmVyKTtcclxuICAgICAgJHN0b3AtZ3JhZGllbnQtaG92ZXI6IGdyYXlzY2FsZSgkc3RvcC1ncmFkaWVudC1ob3Zlcik7XHJcbiAgICAgICR0ZXh0LXNoYWRvdy1ob3ZlcjogICBncmF5c2NhbGUoJHRleHQtc2hhZG93LWhvdmVyKTtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQgKCRiYXNlLWNvbG9yLWhvdmVyLCAkc3RvcC1ncmFkaWVudC1ob3Zlcik7XHJcblxyXG4gICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItdG9wO1xyXG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLXRvcCAkYm9yZGVyLXNpZGVzICRib3JkZXItYm90dG9tO1xyXG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3ctaG92ZXI7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICB0ZXh0LXNoYWRvdzogMCAtMXB4IDFweCAkdGV4dC1zaGFkb3ctaG92ZXI7XHJcbiAgfVxyXG5cclxuICAmOmFjdGl2ZTpub3QoOmRpc2FibGVkKSxcclxuICAmOmZvY3VzOm5vdCg6ZGlzYWJsZWQpIHtcclxuICAgICRhY3RpdmUtY29sb3I6ICAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiA0LCAgJHNhdHVyYXRpb246IC0xMiUsICAkbGlnaHRuZXNzOiAtMTAlKTtcclxuICAgICRib3JkZXItYWN0aXZlOiAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiA2LCAgJHNhdHVyYXRpb246IC0yLjUlLCAkbGlnaHRuZXNzOiAtMzAlKTtcclxuICAgICRib3JkZXItYm90dG9tLWFjdGl2ZTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAxMSwgJHNhdHVyYXRpb246ICA2JSwgICAkbGlnaHRuZXNzOiAtMzElKTtcclxuICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiA5LCAgJHNhdHVyYXRpb246ICAyJSwgICAkbGlnaHRuZXNzOiAtMjEuNSUpO1xyXG4gICAgJHRleHQtc2hhZG93LWFjdGl2ZTogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDUsICAkc2F0dXJhdGlvbjogLTEyJSwgICRsaWdodG5lc3M6IC0yMS41JSk7XHJcblxyXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XHJcbiAgICAgICRhY3RpdmUtY29sb3I6ICAgICAgICAgZ3JheXNjYWxlKCRhY3RpdmUtY29sb3IpO1xyXG4gICAgICAkYm9yZGVyLWFjdGl2ZTogICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyLWFjdGl2ZSk7XHJcbiAgICAgICRib3JkZXItYm90dG9tLWFjdGl2ZTogZ3JheXNjYWxlKCRib3JkZXItYm90dG9tLWFjdGl2ZSk7XHJcbiAgICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctYWN0aXZlKTtcclxuICAgICAgJHRleHQtc2hhZG93LWFjdGl2ZTogICBncmF5c2NhbGUoJHRleHQtc2hhZG93LWFjdGl2ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgYmFja2dyb3VuZDogJGFjdGl2ZS1jb2xvcjtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItYWN0aXZlO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRib3JkZXItYm90dG9tLWFjdGl2ZTtcclxuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCA2cHggM3B4ICRpbnNldC1zaGFkb3ctYWN0aXZlO1xyXG4gICAgdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggJHRleHQtc2hhZG93LWFjdGl2ZTtcclxuICB9XHJcbn1cclxuXHJcbi8vIEZsYXQgQnV0dG9uXHJcbkBtaXhpbiBmbGF0KCRiYXNlLWNvbG9yLCAkZ3JheXNjYWxlOiBmYWxzZSwgJHRleHRzaXplOiBpbmhlcml0LCAkcGFkZGluZzogN3B4IDE4cHgpIHtcclxuICAkY29sb3I6ICAgICAgICAgaHNsKDAsIDAsIDEwMCUpO1xyXG5cclxuICBAaWYgaXMtbGlnaHQoJGJhc2UtY29sb3IpIHtcclxuICAgICRjb2xvcjogICAgICAgaHNsKDAsIDAsIDIwJSk7XHJcbiAgfVxyXG5cclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFzZS1jb2xvcjtcclxuICBib3JkZXItcmFkaXVzOiAzcHg7XHJcbiAgYm9yZGVyOiAwO1xyXG4gIGNvbG9yOiAkY29sb3I7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIGZvbnQtc2l6ZTogJHRleHRzaXplO1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xyXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xyXG5cclxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpe1xyXG4gICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDQlLCAkbGlnaHRuZXNzOiA1JSk7XHJcblxyXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XHJcbiAgICAgICRiYXNlLWNvbG9yLWhvdmVyOiBncmF5c2NhbGUoJGJhc2UtY29sb3ItaG92ZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYXNlLWNvbG9yLWhvdmVyO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIH1cclxuXHJcbiAgJjphY3RpdmU6bm90KDpkaXNhYmxlZCksXHJcbiAgJjpmb2N1czpub3QoOmRpc2FibGVkKSB7XHJcbiAgICAkYmFzZS1jb2xvci1hY3RpdmU6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IC00JSwgJGxpZ2h0bmVzczogLTUlKTtcclxuXHJcbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcclxuICAgICAgJGJhc2UtY29sb3ItYWN0aXZlOiBncmF5c2NhbGUoJGJhc2UtY29sb3ItYWN0aXZlKTtcclxuICAgIH1cclxuXHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFzZS1jb2xvci1hY3RpdmU7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBGbGV4aWJsZSBncmlkXHJcbkBmdW5jdGlvbiBmbGV4LWdyaWQoJGNvbHVtbnMsICRjb250YWluZXItY29sdW1uczogJGZnLW1heC1jb2x1bW5zKSB7XHJcbiAgJHdpZHRoOiAkY29sdW1ucyAqICRmZy1jb2x1bW4gKyAoJGNvbHVtbnMgLSAxKSAqICRmZy1ndXR0ZXI7XHJcbiAgJGNvbnRhaW5lci13aWR0aDogJGNvbnRhaW5lci1jb2x1bW5zICogJGZnLWNvbHVtbiArICgkY29udGFpbmVyLWNvbHVtbnMgLSAxKSAqICRmZy1ndXR0ZXI7XHJcbiAgQHJldHVybiBwZXJjZW50YWdlKCR3aWR0aCAvICRjb250YWluZXItd2lkdGgpO1xyXG5cclxuICBAd2FybiBcIlRoZSBmbGV4LWdyaWQgZnVuY3Rpb24gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZVwiO1xyXG59XHJcblxyXG4vLyBGbGV4aWJsZSBndXR0ZXJcclxuQGZ1bmN0aW9uIGZsZXgtZ3V0dGVyKCRjb250YWluZXItY29sdW1uczogJGZnLW1heC1jb2x1bW5zLCAkZ3V0dGVyOiAkZmctZ3V0dGVyKSB7XHJcbiAgJGNvbnRhaW5lci13aWR0aDogJGNvbnRhaW5lci1jb2x1bW5zICogJGZnLWNvbHVtbiArICgkY29udGFpbmVyLWNvbHVtbnMgLSAxKSAqICRmZy1ndXR0ZXI7XHJcbiAgQHJldHVybiBwZXJjZW50YWdlKCRndXR0ZXIgLyAkY29udGFpbmVyLXdpZHRoKTtcclxuXHJcbiAgQHdhcm4gXCJUaGUgZmxleC1ndXR0ZXIgZnVuY3Rpb24gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZVwiO1xyXG59XHJcblxyXG5AZnVuY3Rpb24gZ3JpZC13aWR0aCgkbikge1xyXG4gIEByZXR1cm4gJG4gKiAkZ3ctY29sdW1uICsgKCRuIC0gMSkgKiAkZ3ctZ3V0dGVyO1xyXG5cclxuICBAd2FybiBcIlRoZSBncmlkLXdpZHRoIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2VcIjtcclxufVxyXG5cclxuQGZ1bmN0aW9uIGdvbGRlbi1yYXRpbygkdmFsdWUsICRpbmNyZW1lbnQpIHtcclxuICBAcmV0dXJuIG1vZHVsYXItc2NhbGUoJGluY3JlbWVudCwgJHZhbHVlLCAkcmF0aW86ICRnb2xkZW4pO1xyXG5cclxuICBAd2FybiBcIlRoZSBnb2xkZW4tcmF0aW8gZnVuY3Rpb24gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZS4gUGxlYXNlIHVzZSB0aGUgbW9kdWxhci1zY2FsZSBmdW5jdGlvbiwgaW5zdGVhZC5cIjtcclxufVxyXG5cclxuQG1peGluIGJveC1zaXppbmcoJGJveCkge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1zaXppbmcsICRib3gsIHdlYmtpdCBtb3ogc3BlYyk7XHJcblxyXG4gIEB3YXJuIFwiVGhlIGJveC1zaXppbmcgbWl4aW4gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZS4gVGhpcyBwcm9wZXJ0eSBjYW4gbm93IGJlIHVzZWQgdW4tcHJlZml4ZWQuXCI7XHJcbn1cclxuIl0sIm1hcHBpbmdzIjoiQUFBQTs7OztnR0FJZ0c7QUNKaEc7Ozs7Z0dBSWdHO0FBRWhHLDZDQUE2QztBQW1EN0M7Z0dBQ2dHO0FEbkRoRyxBQUFBLElBQUksQ0FBQztFQUNELEtBQUssRUFBRSxJQUFLO0VBQ1osU0FBUyxFQUFFLElBQUs7RUFDaEIsV0FBVyxFQ3lEUixXQUFXLEVBQUUsVUFBVTtFRHhEMUIsUUFBUSxFQUFFLFFBQVM7RUFDbkIsVUFBVSxFQUFFLE1BQU87Q0FDdEI7O0FBQ0QsQUFBQSxNQUFNLENBQUE7RUFDRixNQUFNLEVBQUUsQ0FBRTtFQUFFLE9BQU8sRUFBRSxDQUFFO0NBRTFCOztBQUhELEFBRUksTUFGRSxDQUVGLEdBQUcsQ0FBQTtFQUFDLGNBQWMsRUFBRSxNQUFPO0NBQUc7O0FBRWxDLEFBQUEsR0FBRyxDQUFBO0VBQUUsTUFBTSxFQUFDLENBQUU7RUFBRSxTQUFTLEVBQUMsSUFBSztFQUFFLE1BQU0sRUFBQyxJQUFLO0NBQUk7O0FBQ2pELEFBQUEsQ0FBQyxDQUFDO0VBQ0UsTUFBTSxFQUFFLFVBQVc7RUFDbkIsV0FBVyxFQUFFLElBQUs7Q0FDckI7O0FBQ0QsQUFBQSxLQUFLLEVBQUUsQUFBQSxRQUFRLEVBQUUsQUFBQSxNQUFNLENBQUM7RUFDcEIsU0FBUyxFQUFFLElBQUs7RUFDaEIsTUFBTSxFQUFFLElBQUs7RUFDYixNQUFNLEVBQUUsaUJBQWtCO0VBQzFCLE9BQU8sRUFBRSxJQUFLO0VBQ2QsTUFBTSxFQUFFLENBQUU7RUFDVixLQUFLLEVBQUUsSUFBSztFQUNaLFVBQVUsRUFBRSxJQUFLO0VBQ2pCLGtCQUFrQixFQUFFLElBQUs7RUFDekIsZUFBZSxFQUFFLElBQUs7Q0FDekI7O0FBQ0QsQUFBbUIsS0FBZCxDQUFB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QUUsSUFBSztFQUFFLFlBQVksRUFBRSxJQUFLO0VBQUUsVUFBVSxFQUFFLEdBQUk7Q0FLekY7O0FBeEJiLEFBb0JnQixNQXBCVixDQUVGLFNBQVMsQ0FjTCxHQUFHLENBRUMsTUFBTSxDQUVGLENBQUMsQ0FBQTtFQUNHLEtBQUssRUFBRSxJQUFLO0VBQUUsT0FBTyxFQUFFLFlBQWE7RUFBRSxZQUFZLEVBQUUsY0FBZTtFQUFFLGFBQWEsRUFBQyxJQUFLO0VBQUUsWUFBWSxFQUFFLElBQUs7Q0FFL0c7O0FBdkJsQixBQW9CZ0IsTUFwQlYsQ0FFRixTQUFTLENBY0wsR0FBRyxDQUVDLE1BQU0sQ0FFRixDQUFDLEFBRUksV0FBVyxDQUFBO0VBQUUsWUFBWSxFQUFDLElBQUs7RUFBRSxhQUFhLEVBQUUsQ0FBRTtFQUFFLFlBQVksRUFBRSxDQUFFO0NBQUk7O0FBdEI3RixBQXlCWSxNQXpCTixDQUVGLFNBQVMsQ0FjTCxHQUFHLENBU0MsT0FBTyxDQUFBO0VBQ0gsS0FBSyxFQUFFLElBQUs7Q0FJZjs7QUE5QmIsQUEyQmdCLE1BM0JWLENBRUYsU0FBUyxDQWNMLEdBQUcsQ0FTQyxPQUFPLENBRUgsQ0FBQyxDQUFBO0VBQUUsT0FBTyxFQUFFLFlBQWE7RUFBRSxZQUFZLEVBQUUsR0FBSTtDQUFJOztBQTNCakUsQUE0QmdCLE1BNUJWLENBRUYsU0FBUyxDQWNMLEdBQUcsQ0FTQyxPQUFPLENBR0gsT0FBTyxDQUFBO0VBQUUsVUFBVSxFQUFFLG9DQUFHLENBQWlDLFNBQVMsQ0FBQyxNQUFNO0VBQUUsS0FBSyxFQUFDLElBQUs7RUFBRSxNQUFNLEVBQUUsSUFBSztDQUFJOztBQTVCekgsQUE2QmdCLE1BN0JWLENBRUYsU0FBUyxDQWNMLEdBQUcsQ0FTQyxPQUFPLENBSUgsTUFBTSxDQUFBO0VBQUUsVUFBVSxFQUFFLG1DQUFHLENBQWdDLFNBQVMsQ0FBQyxNQUFNO0VBQUMsS0FBSyxFQUFDLElBQUs7RUFBRSxNQUFNLEVBQUUsSUFBSztDQUFLOztBQU12SCxBQUFBLFlBQVksQ0FBQTtFQUNSLE1BQU0sRUFBRSxlQUFnQjtDQUMzQjs7QUFHRCxBQUFBLFlBQVksQ0FBQTtFQUNSLFFBQVEsRUFBRSxLQUFNO0VBQUUsS0FBSyxFQUFFLElBQUs7RUFBQyxNQUFNLEVBQUUsSUFBSztFQUFFLEdBQUcsRUFBRSxDQUFFO0VBQUUsT0FBTyxFQUFFLElBQUs7RUFBRSxVQUFVLEVBQUMsSUFBSztDQUsxRjs7QUFORCxBQUdJLFlBSFEsQ0FHUixTQUFTLENBQUE7RUFDTCxRQUFRLEVBQUUsUUFBUztFQUFFLEdBQUcsRUFBRSxDQUFFO0VBQUUsS0FBSyxFQUFFLENBQUU7RUFBRSxJQUFJLEVBQUUsQ0FBRTtFQUFFLE1BQU0sRUFBRSxDQUFFO0VBQUUsS0FBSyxFQUFFLEtBQU07RUFBRSxNQUFNLEVBQUUsSUFBSztFQUFFLE1BQU0sRUFBRSxJQUFLO0NBQzdHIiwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ== */
